城阳pc工作端前端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

207 lines
6.4 KiB

import Cookies from "js-cookie";
import qs from "qs";
export default {
data() {
/* eslint-disable */
return {
// 设置属性
mixinViewModuleOptions: {
createdIsNeed: true, // 此页面是否在创建时,调用查询数据列表接口?
activatedIsNeed: false, // 此页面是否在激活(进入)时,调用查询数据列表接口?
getDataListURL: "", // 数据列表接口,API地址
getDataListIsPage: false, // 数据列表接口,是否需要分页?
deleteURL: "", // 删除接口,API地址
deleteIsBatch: false, // 删除接口,是否需要批量?
deleteIsBatchKey: "id", // 删除接口,批量状态下由那个key进行标记操作?比如:pid,uid...
exportURL: "", // 导出接口,API地址
},
// 默认属性
dataForm: {}, // 查询条件
dataList: [], // 数据列表
order: "", // 排序,asc/desc
orderField: "", // 排序,字段
pageNo: 1, // 当前页码
pageSize: 10, // 每页数
total: 0, // 总条数
dataListLoading: false, // 数据列表,loading状态
dataListSelections: [], // 数据列表,多选项
addOrUpdateVisible: false, // 新增/更新,弹窗visible状态
};
/* eslint-enable */
},
created() {
if (this.mixinViewModuleOptions.createdIsNeed) {
this.query();
}
},
activated() {
if (this.mixinViewModuleOptions.activatedIsNeed) {
this.query();
}
},
methods: {
// 获取数据列表
query() {
this.dataListLoading = true;
this.$http
.post(this.mixinViewModuleOptions.getDataListURL, {
order: this.order,
orderField: this.orderField,
pageNo: this.mixinViewModuleOptions.getDataListIsPage
? this.pageNo
: null,
pageSize: this.mixinViewModuleOptions.getDataListIsPage
? this.pageSize
: null,
...this.dataForm,
})
.then(({ data: res }) => {
this.dataListLoading = false;
if (res.code !== 0) {
this.dataList = [];
this.total = 0;
return this.$message.error(res.msg);
}
this.dataList = this.mixinViewModuleOptions.getDataListIsPage
? res.data.list
: res.data;
this.total = this.mixinViewModuleOptions.getDataListIsPage
? res.data.total
: 0;
this.dataList.forEach((item) => {
if (item.gender) {
item.gender =
item.gender == "0"
? "女"
: item.gender == "1"
? "男"
: item.gender;
}
});
})
.catch(() => {
this.dataListLoading = false;
});
},
// 多选
dataListSelectionChangeHandle(val) {
this.dataListSelections = val;
},
// 排序
dataListSortChangeHandle(data) {
if (!data.order || !data.prop) {
this.order = "";
this.orderField = "";
return false;
}
this.order = data.order.replace(/ending$/, "");
this.orderField = data.prop.replace(/([A-Z])/g, "_$1").toLowerCase();
this.query();
},
// 分页, 每页条数
pageSizeChangeHandle(val) {
this.pageNo = 1;
this.pageSize = val;
this.query();
},
// 分页, 当前页
pageCurrentChangeHandle(val) {
this.pageNo = val;
this.query();
},
getDataList: function () {
this.pageNo = 1;
this.query();
},
// 新增 / 修改
addOrUpdateHandle(id) {
this.addOrUpdateVisible = true;
this.$nextTick(() => {
this.$refs.addOrUpdate.dataForm.id = id;
this.$refs.addOrUpdate.init();
});
},
// 删除
deleteHandle(id) {
if (
this.mixinViewModuleOptions.deleteIsBatch &&
!id &&
this.dataListSelections.length <= 0
) {
return this.$message({
message: this.$t("prompt.deleteBatch"),
type: "warning",
duration: 500,
});
}
this.$confirm(
this.$t("prompt.info", { handle: this.$t("delete") }),
this.$t("prompt.title"),
{
confirmButtonText: this.$t("confirm"),
cancelButtonText: this.$t("cancel"),
type: "warning",
}
)
.then(() => {
this.$http
.delete(
`${this.mixinViewModuleOptions.deleteURL}${
this.mixinViewModuleOptions.deleteIsBatch ? "" : "/" + id
}`,
this.mixinViewModuleOptions.deleteIsBatch
? {
data: id
? [id]
: this.dataListSelections.map(
(item) =>
item[this.mixinViewModuleOptions.deleteIsBatchKey]
),
}
: {}
)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg);
}
this.$message({
message: this.$t("prompt.success"),
type: "success",
duration: 500,
onClose: () => {
this.query();
},
});
})
.catch(() => {});
})
.catch(() => {});
},
// 导出
exportHandle() {
var params = qs.stringify({
token: localStorage.getItem("token"),
...this.dataForm,
});
window.location.href = `${window.SITE_CONFIG["apiURL"]}${this.mixinViewModuleOptions.exportURL}?${params}`;
},
// 时间段控件取值变化事件-清空一个其他都清空
changeTime(dateValue) {
var startTimeIsNull =
this.dataForm.startTime === "" ||
this.dataForm.startTime === "null" ||
this.dataForm.startTime === null;
var endTimeIsNull =
this.dataForm.endTime === "" ||
this.dataForm.endTime === "null" ||
this.dataForm.endTime === null;
if (dateValue === null || dateValue === "" || dateValue === "null") {
this.dataForm.startTime = "";
this.dataForm.endTime = "";
} else if (startTimeIsNull || endTimeIsNull) {
this.dataForm.startTime = dateValue;
this.dataForm.endTime = dateValue;
}
},
},
};