|
@@ -13,7 +13,7 @@ export default {
|
|
|
type: Object,
|
|
|
},
|
|
|
selectData: {
|
|
|
- type: [Array],
|
|
|
+ type: Object,
|
|
|
require: true,
|
|
|
},
|
|
|
addType: {
|
|
@@ -62,30 +62,6 @@ export default {
|
|
|
},
|
|
|
set() {},
|
|
|
},
|
|
|
- disabled: {
|
|
|
- get() {
|
|
|
- const {
|
|
|
- addType,
|
|
|
- selectData,
|
|
|
- selectData: [{ status } = {}],
|
|
|
- } = this.$props;
|
|
|
- if (addType === "add") {
|
|
|
- return false;
|
|
|
- }
|
|
|
- if (addType === "edit") {
|
|
|
- if (selectData.length !== 1) {
|
|
|
- return true;
|
|
|
- }
|
|
|
- if (selectData.length === 1 && status === "1") {
|
|
|
- return true;
|
|
|
- }
|
|
|
- if (selectData.length === 1 && status === "2") {
|
|
|
- return true;
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- set() {},
|
|
|
- },
|
|
|
},
|
|
|
watch: {},
|
|
|
methods: {
|
|
@@ -121,28 +97,33 @@ export default {
|
|
|
const { addType, selectData } = this.$props;
|
|
|
if (addType === "add") {
|
|
|
this.visible = true;
|
|
|
+ var date = new Date();
|
|
|
+ this.params.year = date.getFullYear() + '-' + '01' + '-' + '01';
|
|
|
+ this.params.startTime = date.getFullYear() + '-' + '01' + '-' + '01';
|
|
|
+ this.params.deadlineTime = date.getFullYear() + '-' + '12' + '-' + '31';
|
|
|
+ this.params.cycle = 'month';
|
|
|
}
|
|
|
if (addType === "edit") {
|
|
|
- const [{ id }] = selectData;
|
|
|
//校验目标模板是否存在引用
|
|
|
- const { code, data } = await checkQuote(id);
|
|
|
- if(code == '200'){
|
|
|
- if(data){
|
|
|
+ const { code, data } = await checkQuote(selectData.id);
|
|
|
+ if (code == "200") {
|
|
|
+ if (data) {
|
|
|
this.$modal.msgError("该目标模板存在引用,无法修改!");
|
|
|
this.visible = false;
|
|
|
return;
|
|
|
}
|
|
|
- }else{
|
|
|
+ } else {
|
|
|
this.$modal.msgError("校验该目标模板是否存在引用异常,无法修改!");
|
|
|
this.visible = false;
|
|
|
return;
|
|
|
}
|
|
|
- this.visible = await this.fetchTemplate(id);
|
|
|
- this.params.indexs = this.params.indexs.map((item) => ({ ...item }));
|
|
|
+ this.visible = await this.fetchTemplate(selectData.id);
|
|
|
+ this.params.indexs = this.params.indexs.map((item) => ({ ...item}));
|
|
|
this.params.dimensionalitys = this.params.dimensionalitys.map(
|
|
|
- (item) => ({ ...item })
|
|
|
+ (item) => ({ ...item})
|
|
|
);
|
|
|
- this.params.cycles = this.params.cycles.map((item) => ({ ...item }));
|
|
|
+ this.params.cycles = this.params.cycles.map((item) => ({ ...item}));
|
|
|
+ console.log("this.params",this.params);
|
|
|
}
|
|
|
},
|
|
|
//关闭页面
|
|
@@ -166,29 +147,25 @@ export default {
|
|
|
const { TableColumns } = TabColumns.find(
|
|
|
({ item: { key } }) => key === prop
|
|
|
);
|
|
|
- console.log(prop, this.$init.params(TableColumns));
|
|
|
this.params[prop].push({
|
|
|
delFlag: "0",
|
|
|
+ $index: new Date().getTime(),
|
|
|
...this.$init.params(TableColumns),
|
|
|
});
|
|
|
- console.log("this.params[prop]", this.params[prop]);
|
|
|
},
|
|
|
//删行
|
|
|
async useRowRemove(prop, scope) {
|
|
|
- const { addType } = this.$props;
|
|
|
- const {
|
|
|
- row: { $index },
|
|
|
- } = scope;
|
|
|
- if (addType === "add") {
|
|
|
- this.params[prop].splice($index, 1);
|
|
|
- }
|
|
|
- if (addType === "edit") {
|
|
|
- this.params[prop] = this.params[prop].map((item, index) => ({
|
|
|
- ...item,
|
|
|
- delFlag: index === $index ? "2" : item.delFlag,
|
|
|
- }));
|
|
|
- console.log(this.params[prop]);
|
|
|
+ // const { addType } = this.$props;
|
|
|
+ if (scope.row.id) {
|
|
|
+ this.params[prop].forEach(e => {
|
|
|
+ if(e.id == scope.row.id){
|
|
|
+ e.delFlag = '2'
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ this.params[prop] = this.params[prop].filter(item => item.$index != scope.row.$index);
|
|
|
}
|
|
|
+ console.log("this.params[prop]",this.params[prop]);
|
|
|
},
|
|
|
//确认
|
|
|
async useSubmit(prop) {
|
|
@@ -196,18 +173,6 @@ export default {
|
|
|
if (valid) {
|
|
|
try {
|
|
|
this.loading = true;
|
|
|
- // const {
|
|
|
- // params,
|
|
|
- // params: { paramsOrgs, paramsItems },
|
|
|
- // } = this;
|
|
|
- // if (this.addType === "edit") {
|
|
|
- // params.paramsOrgs = paramsOrgs.filter(
|
|
|
- // (item) => item.orgName
|
|
|
- // );
|
|
|
- // params.paramsItems = paramsItems.filter(
|
|
|
- // (item) => item.materialName
|
|
|
- // );
|
|
|
- // }
|
|
|
const { addType } = this.$props;
|
|
|
let res = null;
|
|
|
if (addType === "add") {
|
|
@@ -233,21 +198,149 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
+ //保存并新增
|
|
|
+ useSaveAndAdd(prop){
|
|
|
+ this.$refs[prop].$refs[prop].validate(async (valid) => {
|
|
|
+ if (valid) {
|
|
|
+ try {
|
|
|
+ this.loading = true;
|
|
|
+ const { addType } = this.$props;
|
|
|
+ let res = null;
|
|
|
+ if (addType === "add") {
|
|
|
+ res = await addTargetTemplate(this.params);
|
|
|
+ }
|
|
|
+ if (addType === "edit") {
|
|
|
+ res = await updateTargetTemplate(this.params);
|
|
|
+ }
|
|
|
+ if (res.code === 200) {
|
|
|
+ this.$notify.success(res.msg);
|
|
|
+ this.params={};
|
|
|
+ }
|
|
|
+ } catch (err) {
|
|
|
+ // catch
|
|
|
+ console.error(err);
|
|
|
+ } finally {
|
|
|
+ // finally
|
|
|
+ this.loading = false;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //重置周期
|
|
|
+ useResetCycle(){
|
|
|
+ if(!this.params.startTime || !this.params.deadlineTime || !this.params.cycle){
|
|
|
+ this.$modal.msgError("开始日期、结束日期、周期不能存在空值!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(this.params.startTime > this.params.deadlineTime){
|
|
|
+ this.$modal.msgError("开始日期不能大于结束日期!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.params.cycles = [];
|
|
|
+ var cycles = [];
|
|
|
+ var start = new Date(this.params.startTime);
|
|
|
+ var deadline = new Date(this.params.deadlineTime);
|
|
|
+ start.setHours( 0, 0, 0);
|
|
|
+ deadline.setHours( 0, 0, 0);
|
|
|
+ if(this.params.cycle == 'period'){
|
|
|
+ cycles.push({
|
|
|
+ name:'目标期间',
|
|
|
+ startTime:start,
|
|
|
+ deadlineTime:deadline,
|
|
|
+ });
|
|
|
+ }else{
|
|
|
+ while(deadline >= start){
|
|
|
+ console.log(start);
|
|
|
+ if(this.params.cycle == 'day'){
|
|
|
+ var cy = {
|
|
|
+ name:this.formatDateTime(start, 'yyyy-MM-dd'),
|
|
|
+ startTime:start,
|
|
|
+ deadlineTime:start,
|
|
|
+ }
|
|
|
+ console.log(cy);
|
|
|
+ cycles.push(cy);
|
|
|
+ start = start.setDate(start.getDate()+1);
|
|
|
+ start = new Date(start);
|
|
|
+ }
|
|
|
+ if(this.params.cycle == 'week'){
|
|
|
+ var de = start;
|
|
|
+ var cy = {
|
|
|
+ name:this.formatDateTime(start, 'yyyy-MM-dd'),
|
|
|
+ startTime:start,
|
|
|
+ deadlineTime:de.setDate(de.getDate()+7),
|
|
|
+ }
|
|
|
+ console.log(cy);
|
|
|
+ cycles.push(cy);
|
|
|
+ start = start.setDate(start.getDate()+7);
|
|
|
+ start = new Date(start);
|
|
|
+ }
|
|
|
+ if(this.params.cycle == 'month'){
|
|
|
+ var de = start;
|
|
|
+ var cy = {
|
|
|
+ name:this.formatDateTime(start, 'yyyy-MM-dd'),
|
|
|
+ startTime:start,
|
|
|
+ deadlineTime:de.setDate(de.getDate()+30),
|
|
|
+ }
|
|
|
+ console.log(cy);
|
|
|
+ cycles.push(cy);
|
|
|
+ start = start.setDate(start.getDate()+30);
|
|
|
+ start = new Date(start);
|
|
|
+ }
|
|
|
+ if(this.params.cycle == 'season'){
|
|
|
+ var de = start;
|
|
|
+ var cy = {
|
|
|
+ name:this.formatDateTime(start, 'yyyy-MM-dd'),
|
|
|
+ startTime:start,
|
|
|
+ deadlineTime:de.setDate(de.getDate()+90),
|
|
|
+ }
|
|
|
+ console.log(cy);
|
|
|
+ cycles.push(cy);
|
|
|
+ start = start.setDate(start.getDate()+90);
|
|
|
+ start = new Date(start);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.params.cycles = cycles;
|
|
|
+ console.log('this.params.cycles',this.params.cycles);
|
|
|
+ },
|
|
|
+ //日期名称格式化
|
|
|
+ formatDateTime(date, format) {
|
|
|
+ const o = {
|
|
|
+ 'M+': date.getMonth() + 1, // 月份
|
|
|
+ 'd+': date.getDate(), // 日
|
|
|
+ 'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12, // 小时
|
|
|
+ 'H+': date.getHours(), // 小时
|
|
|
+ 'm+': date.getMinutes(), // 分
|
|
|
+ 's+': date.getSeconds(), // 秒
|
|
|
+ 'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
|
|
|
+ S: date.getMilliseconds(), // 毫秒
|
|
|
+ a: date.getHours() < 12 ? '上午' : '下午', // 上午/下午
|
|
|
+ A: date.getHours() < 12 ? 'AM' : 'PM', // AM/PM
|
|
|
+ };
|
|
|
+ if (/(y+)/.test(format)) {
|
|
|
+ format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
|
|
|
+ }
|
|
|
+ for (let k in o) {
|
|
|
+ if (new RegExp('(' + k + ')').test(format)) {
|
|
|
+ format = format.replace(
|
|
|
+ RegExp.$1,
|
|
|
+ RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)
|
|
|
+ );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return format;
|
|
|
+ }
|
|
|
},
|
|
|
created() {
|
|
|
- console.log("params", this.params);
|
|
|
},
|
|
|
mounted() {},
|
|
|
destroyed() {},
|
|
|
};
|
|
|
</script>
|
|
|
<template>
|
|
|
- <el-button
|
|
|
- v-bind="$attrs"
|
|
|
- v-on="$listeners"
|
|
|
- :disabled="disabled"
|
|
|
- @click="open"
|
|
|
- >
|
|
|
+ <el-button v-bind="$attrs" v-on="$listeners" @click="open">
|
|
|
{{ title }}
|
|
|
<el-drawer
|
|
|
:size="width"
|
|
@@ -304,9 +397,11 @@ export default {
|
|
|
>
|
|
|
</component>
|
|
|
</template> -->
|
|
|
- <el-table-column fixed="right" label="操作" width="75">
|
|
|
+ <el-table-column fixed="right" label="操作" width="100">
|
|
|
<template slot="header" slot-scope="scope">
|
|
|
+ <el-button v-if="tabName == 'cycles'" type="primary" size="mini" @click="useResetCycle">重算周期</el-button>
|
|
|
<el-button
|
|
|
+ v-else
|
|
|
circle
|
|
|
icon="el-icon-plus"
|
|
|
:size="$attrs.size"
|
|
@@ -316,6 +411,7 @@ export default {
|
|
|
</template>
|
|
|
<template slot-scope="scope">
|
|
|
<el-button
|
|
|
+ v-if="tabName == 'indexs' || tabName == 'dimensionalitys'"
|
|
|
circle
|
|
|
icon="el-icon-minus"
|
|
|
:size="$attrs.size"
|
|
@@ -331,6 +427,13 @@ export default {
|
|
|
<el-button :size="$attrs.size" :loading="loading" @click="hide"
|
|
|
>取 消</el-button
|
|
|
>
|
|
|
+ <!-- <el-button
|
|
|
+ type="primary"
|
|
|
+ :size="$attrs.size"
|
|
|
+ :loading="loading"
|
|
|
+ @click="useSaveAndAdd('superForm')"
|
|
|
+ >保存并新增</el-button
|
|
|
+ > -->
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
:size="$attrs.size"
|