|
@@ -2,7 +2,7 @@
|
|
|
* @Author : yuanrunwei
|
|
|
* @Date : 2021-12-04 14:23:58
|
|
|
* @LastEditors: Please set LastEditors
|
|
|
- * @LastEditTime: 2022-01-18 20:44:14
|
|
|
+ * @LastEditTime: 2022-01-23 19:41:44
|
|
|
* @FilePath : \spfm-market-front\src\pages\main\performance\components\sheet.vue
|
|
|
-->
|
|
|
|
|
@@ -27,11 +27,24 @@
|
|
|
>
|
|
|
<el-button type="primary">上传</el-button>
|
|
|
</el-upload>
|
|
|
-
|
|
|
+ <el-button
|
|
|
+ v-if="!status || status === '2'"
|
|
|
+ type="primary"
|
|
|
+ @click="handleSave('2')"
|
|
|
+ :disabled="handleForbid()"
|
|
|
+ >暂存</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ v-if="status === '2'"
|
|
|
+ type="primary"
|
|
|
+ @click="handleResave"
|
|
|
+ :disabled="handleForbid()"
|
|
|
+ >保存</el-button
|
|
|
+ >
|
|
|
<el-button
|
|
|
v-if="addFlag === '0'"
|
|
|
type="primary"
|
|
|
- @click="handleSave"
|
|
|
+ @click="handleSave('0')"
|
|
|
:disabled="handleForbid()"
|
|
|
><span>{{ id ? "提交" : "新增" }}</span
|
|
|
><span>{{
|
|
@@ -68,18 +81,6 @@
|
|
|
></el-option>
|
|
|
</el-select>
|
|
|
</div>
|
|
|
- <!-- <div class="form-input">
|
|
|
- <span class="form-content"> 可编辑行:从</span>
|
|
|
- <el-input v-model="form.col_start" />
|
|
|
- <span class="form-content">到</span
|
|
|
- ><el-input v-model="form.col_end" />
|
|
|
- </div>
|
|
|
- <div class="form-input">
|
|
|
- <span class="form-content">可编辑列:从</span>
|
|
|
- <el-input v-model="form.row_start" />
|
|
|
- <span class="form-content">到</span>
|
|
|
- <el-input v-model="form.row_end" />
|
|
|
- </div> -->
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-radio :label="1"><span>特殊权限:</span></el-radio>
|
|
@@ -132,102 +133,45 @@
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
</el-radio-group>
|
|
|
- <!-- <el-form-item
|
|
|
- label="可编辑列"
|
|
|
- prop="array"
|
|
|
- ><el-select
|
|
|
- v-model="form.array"
|
|
|
- placeholder="可编辑列"
|
|
|
- multiple
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="(value, index) in 10"
|
|
|
- :key="index"
|
|
|
- :label="index + 1"
|
|
|
- :value="index + 1"
|
|
|
- >
|
|
|
- </el-option> </el-select
|
|
|
- ></el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="权限规则"
|
|
|
- prop="type"
|
|
|
- :rules="{
|
|
|
- required: true,
|
|
|
- message: '权限规则不能为空',
|
|
|
- trigger: 'change',
|
|
|
- }"
|
|
|
- >
|
|
|
- <el-select v-model="form.type">
|
|
|
- <el-option
|
|
|
- v-for="item in type_options"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- ></el-option> </el-select
|
|
|
- ></el-form-item>
|
|
|
- <el-form-item
|
|
|
- label="负责人"
|
|
|
- prop="charge"
|
|
|
- :rules="{
|
|
|
- required: true,
|
|
|
- message: '负责人不能为空',
|
|
|
- trigger: 'blur',
|
|
|
- }"
|
|
|
- >
|
|
|
- <div
|
|
|
- class="flex-justify-start"
|
|
|
- v-for="(item, index) in form.charge"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
- <el-select
|
|
|
- v-model="item.key"
|
|
|
- class="margin-bottom-20 margin-right-10 flex-1"
|
|
|
- placeholder="请选择指定列/行"
|
|
|
- multiple
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="(value, index) in 10"
|
|
|
- :key="index"
|
|
|
- :label="index + 1"
|
|
|
- :value="index + 1"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select>
|
|
|
- <el-select
|
|
|
- class="margin-bottom-20"
|
|
|
- placeholder="请选择负责人"
|
|
|
- v-model="item.value"
|
|
|
- filterable
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="({ label, value }, index) in charge_list"
|
|
|
- :key="index"
|
|
|
- :label="label"
|
|
|
- :value="value"
|
|
|
- ></el-option>
|
|
|
- </el-select>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div>
|
|
|
- <el-button @click.prevent="handleCharge('add')"
|
|
|
- >添加</el-button
|
|
|
- >
|
|
|
- <el-button
|
|
|
- v-if="form.charge.length - 1"
|
|
|
- @click.prevent="handleCharge('delete')"
|
|
|
- >删除</el-button
|
|
|
- >
|
|
|
- </div>
|
|
|
- </el-form-item> -->
|
|
|
</el-form>
|
|
|
- <template v-if="id" v-slot:footer><div></div></template>
|
|
|
+ <template v-if="id && status !== '2'" v-slot:footer><div></div></template>
|
|
|
</simple-dialog>
|
|
|
<simpleDialog
|
|
|
- title="审批"
|
|
|
+ title="提交"
|
|
|
:visible="manager_approve"
|
|
|
:modal="false"
|
|
|
@cancel="handleApprove"
|
|
|
>
|
|
|
+ <el-form :model="approveForm" label-width="120px">
|
|
|
+ <el-form-item
|
|
|
+ label="审批意见:"
|
|
|
+ :rules="{
|
|
|
+ required: true,
|
|
|
+ message: '请选择审批意见',
|
|
|
+ trigger: 'change',
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <el-select v-model="approveForm.type">
|
|
|
+ <el-option
|
|
|
+ v-for="item in approveForm.list"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ >
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item
|
|
|
+ v-if="approveForm.type === '3'"
|
|
|
+ label="其它审批意见:"
|
|
|
+ :rules="{
|
|
|
+ required: true,
|
|
|
+ message: '请输入审批意见',
|
|
|
+ trigger: 'blur',
|
|
|
+ }"
|
|
|
+ ><el-input v-model="approveForm.comments"
|
|
|
+ /></el-form-item>
|
|
|
+ </el-form>
|
|
|
<template v-slot:footer>
|
|
|
<div>
|
|
|
<el-button @click.prevent="handleApprove('1')">结束</el-button>
|
|
@@ -263,6 +207,11 @@ export default {
|
|
|
id: {
|
|
|
default: null,
|
|
|
},
|
|
|
+ receiver: {
|
|
|
+ type: String,
|
|
|
+ default: "",
|
|
|
+ },
|
|
|
+ status: { type: String, default: "" },
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
@@ -276,7 +225,6 @@ export default {
|
|
|
row_end: "",
|
|
|
},
|
|
|
],
|
|
|
-
|
|
|
array: [],
|
|
|
type: null,
|
|
|
|
|
@@ -286,6 +234,24 @@ export default {
|
|
|
row_start: "",
|
|
|
row_end: "",
|
|
|
},
|
|
|
+ approveForm: {
|
|
|
+ type: "",
|
|
|
+ comments: "",
|
|
|
+ list: [
|
|
|
+ {
|
|
|
+ label: "同意",
|
|
|
+ value: "同意",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "不同意",
|
|
|
+ value: "不同意",
|
|
|
+ },
|
|
|
+ {
|
|
|
+ label: "其他",
|
|
|
+ value: "3",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ },
|
|
|
// 可提交标志
|
|
|
addFlag: "0",
|
|
|
isDisable: true,
|
|
@@ -323,24 +289,32 @@ export default {
|
|
|
handleAllow({ row, column }) {
|
|
|
return (
|
|
|
(!this.form.permission_type && this.type === "edit") ||
|
|
|
- (this.row_list.includes(row) && this.column_list.includes(column))
|
|
|
+ (this.row_list.includes(row) && this.column_list.includes(column)) ||
|
|
|
+ (this.status === "2" && this.type === "edit")
|
|
|
);
|
|
|
},
|
|
|
async handleQuery() {
|
|
|
let url = "";
|
|
|
- let key = "";
|
|
|
+ let params = {};
|
|
|
switch (this.attribute) {
|
|
|
case "template":
|
|
|
url = "/market/CMKFileTemplate/QueryCMKFileTemplateById";
|
|
|
- key = "templateId";
|
|
|
+ params = {
|
|
|
+ templateId: this.id,
|
|
|
+ };
|
|
|
break;
|
|
|
case "order":
|
|
|
url = "/market/CMKIssued/CMKQueryIssuedById";
|
|
|
- key = "id";
|
|
|
+ params = {
|
|
|
+ id: this.id,
|
|
|
+ };
|
|
|
break;
|
|
|
case "file":
|
|
|
url = "/market/CMKIssued/CMKIssuedProcessByUser";
|
|
|
- key = "id";
|
|
|
+ params = {
|
|
|
+ id: this.id,
|
|
|
+ receiverId: this.receiver,
|
|
|
+ };
|
|
|
break;
|
|
|
}
|
|
|
const {
|
|
@@ -358,9 +332,7 @@ export default {
|
|
|
headers: {
|
|
|
"Content-Type": "application/json",
|
|
|
},
|
|
|
- data: {
|
|
|
- [key]: this.id,
|
|
|
- },
|
|
|
+ data: params,
|
|
|
});
|
|
|
this.template_id = templateId;
|
|
|
this.issued_id = issuedId;
|
|
@@ -406,16 +378,6 @@ export default {
|
|
|
})),
|
|
|
};
|
|
|
}
|
|
|
- // this.form = {
|
|
|
- // ...this.form,
|
|
|
- // type: type,
|
|
|
- // array: allowEditingColumns ? allowEditingColumns.split(",") : [],
|
|
|
- // charge: list.map(({ principalId, principalName, rowNum }) => ({
|
|
|
- // value: `${principalId},${principalName}`,
|
|
|
- // key: rowNum.split(","),
|
|
|
- // })),
|
|
|
- // };
|
|
|
- // this.form = {};
|
|
|
this.row_list =
|
|
|
this.type === "edit" && list[0].rowNum
|
|
|
? list[0].rowNum
|
|
@@ -464,32 +426,6 @@ export default {
|
|
|
} else {
|
|
|
return true;
|
|
|
}
|
|
|
- // form: {
|
|
|
- // charge: [
|
|
|
- // {
|
|
|
- // person: "",
|
|
|
- // col_start: "",
|
|
|
- // col_End: "",
|
|
|
- // row_start: "",
|
|
|
- // row_end: "",
|
|
|
- // },
|
|
|
- // ],
|
|
|
- // array: [],
|
|
|
- // type: null,
|
|
|
- // permission_type: 0,
|
|
|
- // col_start: "",
|
|
|
- // col_end: "",
|
|
|
- // row_start: "",
|
|
|
- // row_end: "",
|
|
|
- // },
|
|
|
-
|
|
|
- // charge.map(({ key }) => {
|
|
|
- // console.log(key);
|
|
|
- // // if (key && value) {
|
|
|
- // // object[key] = value;
|
|
|
- // // }
|
|
|
- // });
|
|
|
- // return !(Object.keys(object).length && type);
|
|
|
},
|
|
|
async handleCreate({ file, json, type, name } = {}) {
|
|
|
let that = this;
|
|
@@ -612,7 +548,7 @@ export default {
|
|
|
});
|
|
|
this.$message.success("操作成功");
|
|
|
},
|
|
|
- async handleSave() {
|
|
|
+ async handleSave(type) {
|
|
|
let edit_url = "";
|
|
|
switch (this.attribute) {
|
|
|
case "template":
|
|
@@ -643,6 +579,7 @@ export default {
|
|
|
templateContent: JSON.stringify(data),
|
|
|
templateName: workbook_name,
|
|
|
issuedId: this.issued_id,
|
|
|
+ status: type,
|
|
|
},
|
|
|
});
|
|
|
this.handleAddAuth({ id: body });
|
|
@@ -654,6 +591,24 @@ export default {
|
|
|
this.manager_approve = true;
|
|
|
} else {
|
|
|
// 员工提交
|
|
|
+ if (type === "2") {
|
|
|
+ // 暂存
|
|
|
+ await this.$http({
|
|
|
+ url: "/market/CMKFileTemplate/UptateCMKFileTemplateById", // 新增
|
|
|
+ method: "post",
|
|
|
+ headers: {
|
|
|
+ "Content-Type": "application/json",
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ templateId: this.id,
|
|
|
+ templateContent: JSON.stringify(data),
|
|
|
+ templateName: workbook_name,
|
|
|
+ status: type,
|
|
|
+ },
|
|
|
+ });
|
|
|
+ this.$emit("save");
|
|
|
+ return;
|
|
|
+ }
|
|
|
await this.$http({
|
|
|
url: edit_url, // 新增
|
|
|
method: "post",
|
|
@@ -718,6 +673,15 @@ export default {
|
|
|
this.visible = !this.visible;
|
|
|
},
|
|
|
async handleApprove(type) {
|
|
|
+ if (this.approveForm.type) {
|
|
|
+ if (this.approveForm.type === "3" && !this.approveForm.comments) {
|
|
|
+ this.$message.error("请输入其他审批意见");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.$message.error("请选择审批意见");
|
|
|
+ return;
|
|
|
+ }
|
|
|
if (type) {
|
|
|
const sheet_name = window.luckysheet.getSheet().name;
|
|
|
const data = window.luckysheet.getSheet(sheet_name);
|
|
@@ -735,7 +699,13 @@ export default {
|
|
|
issuedId: this.issued_id,
|
|
|
},
|
|
|
});
|
|
|
- let params = { id: this.issued_id };
|
|
|
+ let params = {
|
|
|
+ id: this.issued_id,
|
|
|
+ reviewOpinion:
|
|
|
+ this.approveForm.type === "3"
|
|
|
+ ? this.approveForm.comments
|
|
|
+ : this.approveForm.type,
|
|
|
+ };
|
|
|
switch (type) {
|
|
|
case "1":
|
|
|
params = {
|
|
@@ -801,6 +771,26 @@ export default {
|
|
|
: "";
|
|
|
}
|
|
|
},
|
|
|
+ handleResave() {
|
|
|
+ const sheet_name = window.luckysheet.getSheet().name;
|
|
|
+ const data = window.luckysheet.getSheet(sheet_name);
|
|
|
+ const workbook_name = window.luckysheet.getWorkbookName();
|
|
|
+ this.$http({
|
|
|
+ url: "/market/CMKFileTemplate/UptateCMKFileTemplateById",
|
|
|
+ method: "post",
|
|
|
+ headers: {
|
|
|
+ "Content-Type": "application/json",
|
|
|
+ },
|
|
|
+ data: {
|
|
|
+ templateId: this.id,
|
|
|
+ templateContent: JSON.stringify(data),
|
|
|
+ templateName: workbook_name,
|
|
|
+ status: "0",
|
|
|
+ },
|
|
|
+ }).then(() => {
|
|
|
+ this.$emit("save");
|
|
|
+ });
|
|
|
+ },
|
|
|
handleChargeList() {
|
|
|
this.$http({
|
|
|
url: "/market/techcentergj/queryLeaderList",
|
|
@@ -818,6 +808,7 @@ export default {
|
|
|
},
|
|
|
},
|
|
|
mounted() {
|
|
|
+ console.log(this.status, "s");
|
|
|
this.handleInit();
|
|
|
this.handleChargeList();
|
|
|
},
|