|
|
@@ -1,30 +1,30 @@
|
|
|
<template>
|
|
|
- <el-dialog v-model="visible" :title="titleMap[mode]" :width="680" @closed="$emit('closed', fileIsDel)">
|
|
|
- <el-form ref="formRef" :model="form" :rules="rules" :disabled="mode == 'detail'" label-width="110px">
|
|
|
+ <el-dialog v-model="visible" :title="titleMap[mode]" width="680" @closed="$emit('closed', fileIsDel)">
|
|
|
+ <el-form ref="formRef" :model="form" :rules="rules" label-width="110px">
|
|
|
<el-row>
|
|
|
<el-col v-if="form.id" :span="12">
|
|
|
<el-form-item label="政策编号" prop="businessNo">
|
|
|
- <el-input v-model="form.businessNo" disabled></el-input>
|
|
|
+ <el-input v-model="form.businessNo" readonly></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="填报人">
|
|
|
- <el-input v-model="form.createName" disabled></el-input>
|
|
|
+ <el-input v-model="form.createName" readonly></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="填报部门">
|
|
|
- <el-input v-model="form.deptName" disabled></el-input>
|
|
|
+ <el-input v-model="form.deptName" readonly></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="填报单位">
|
|
|
- <el-input v-model="form.companyName" disabled></el-input>
|
|
|
+ <el-input v-model="form.companyName" readonly></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col v-if="form.id" :span="12">
|
|
|
<el-form-item label="填报时间">
|
|
|
- <el-date-picker v-model="form.createTime" disabled format="YYYY-MM-DD HH:mm:ss"></el-date-picker>
|
|
|
+ <el-date-picker v-model="form.createTime" readonly format="YYYY-MM-DD HH:mm:ss"></el-date-picker>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
@@ -61,13 +61,8 @@
|
|
|
<el-input v-model="form.abstractContent" type="textarea" :rows="4" placeholder="请输入政策概要"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col v-if="mode == 'decode'" :span="24">
|
|
|
- <el-form-item label="政策解读" prop="decodeContent">
|
|
|
- <el-input v-model="form.decodeContent" type="textarea" :rows="4" placeholder="请输入政策解读"></el-input>
|
|
|
- </el-form-item>
|
|
|
- </el-col>
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item :class="mode == 'detail' && 'no-upload-btn'" label="附件">
|
|
|
+ <el-form-item label="附件">
|
|
|
<yhUpload v-model="form.fileList" :limit="10" @updateTable="fileIsDel = true">
|
|
|
<el-button type="primary" icon="upload" size="small"></el-button>
|
|
|
</yhUpload>
|
|
|
@@ -75,19 +70,10 @@
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
</el-form>
|
|
|
- <approve-form v-if="isMaster || (mode == 'detail' && form.id)" ref="approveForm" :rowData="form" :handler="handler" :isMaster="isMaster" :disabled="isMaster ? false : !isApprove" @success="visible = false"></approve-form>
|
|
|
-
|
|
|
+
|
|
|
<template #footer>
|
|
|
- <template v-if="isApprove">
|
|
|
- <el-button type="primary" @click="policyApprove">确 定</el-button>
|
|
|
- </template>
|
|
|
- <template v-if="isMaster">
|
|
|
- <el-button type="primary" @click="validateForm(mode == 'decode' && 'edit' || mode)">确 定</el-button>
|
|
|
- </template>
|
|
|
- <template v-if="!isMaster && (mode == 'add' || mode == 'edit')">
|
|
|
- <el-button type="primary" @click="validateForm(mode)">保 存</el-button>
|
|
|
- <el-button type="primary" @click="validateForm('saveApprove')">直接上报</el-button>
|
|
|
- </template>
|
|
|
+ <el-button type="primary" @click="submit(mode)">保 存</el-button>
|
|
|
+ <el-button type="primary" @click="submit('saveApprove')">直接上报</el-button>
|
|
|
</template>
|
|
|
</el-dialog>
|
|
|
</template>
|
|
|
@@ -98,19 +84,14 @@ import API from "@/api/policy/share";
|
|
|
import { useUserStore } from "@/store/user";
|
|
|
import { levelDic, typeDic } from "./main";
|
|
|
import yhUpload from "@/components/Upload/index.vue";
|
|
|
-import approveForm from "@/views/policyShare/approve.vue";
|
|
|
|
|
|
const { userInfo } = useUserStore(); // store 用户
|
|
|
|
|
|
export default {
|
|
|
emits: ["success", "closed"],
|
|
|
- props: {
|
|
|
- isMaster: { type: Boolean, default: false },
|
|
|
- isApprove: { type: Boolean, default: false }
|
|
|
- },
|
|
|
+
|
|
|
components: {
|
|
|
- yhUpload,
|
|
|
- approveForm
|
|
|
+ yhUpload
|
|
|
},
|
|
|
|
|
|
data() {
|
|
|
@@ -119,13 +100,9 @@ export default {
|
|
|
|
|
|
visible: false,
|
|
|
mode: "add",
|
|
|
- handler: "agree",
|
|
|
titleMap: {
|
|
|
add: "新增",
|
|
|
- saveDone: "新增",
|
|
|
- edit: "编辑",
|
|
|
- detail: "详情",
|
|
|
- decode: "添加解读"
|
|
|
+ edit: "编辑"
|
|
|
},
|
|
|
form: {
|
|
|
id: null,
|
|
|
@@ -142,10 +119,6 @@ export default {
|
|
|
docNo: null,
|
|
|
contactPhone: null,
|
|
|
abstractContent: null,
|
|
|
- decodeContent: null,
|
|
|
- score: null,
|
|
|
- isInWh: this.isMaster && 1 || 0,
|
|
|
- inWhType: null,
|
|
|
fileList: []
|
|
|
},
|
|
|
|
|
|
@@ -156,12 +129,10 @@ export default {
|
|
|
zcType: [{ required: true, message: "请选择政策类别" }],
|
|
|
docNo: [{ required: true, message: "请输入政策文号" }],
|
|
|
contactPhone: [{ required: true, message: "请输入联系方式" }],
|
|
|
- abstractContent: [{ required: true, message: "请输入政策概要" }],
|
|
|
- decodeContent: [{ required: true, message: "请输入政策解读" }]
|
|
|
+ abstractContent: [{ required: true, message: "请输入政策概要" }]
|
|
|
},
|
|
|
|
|
|
- fileIsDel: false,
|
|
|
- dialog: false
|
|
|
+ fileIsDel: false
|
|
|
}
|
|
|
},
|
|
|
|
|
|
@@ -170,9 +141,8 @@ export default {
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
- open(mode = "add", handler) {
|
|
|
+ open(mode = "add") {
|
|
|
this.mode = mode;
|
|
|
- this.handler = handler;
|
|
|
this.visible = true;
|
|
|
return this;
|
|
|
},
|
|
|
@@ -181,9 +151,7 @@ export default {
|
|
|
API.detail(id).then(res => {
|
|
|
if (res.code === 200) {
|
|
|
for (const key in this.form) {
|
|
|
- if (key == "fileList") {
|
|
|
- this.form[key] = res.data[key].map(file => ({ ...file, name: file.originalName, path: file.fileDomain + "/" + file.fileName }));
|
|
|
- } else if (key == "isInWh") this.form.isInWh = !!res.data[key] && res.data[key] || 0;
|
|
|
+ if (key == "fileList") this.form[key] = res.data[key].map(file => ({ ...file, name: file.originalName, path: file.fileDomain + "/" + file.fileName }));
|
|
|
else this.form[key] = res.data[key] || null;
|
|
|
}
|
|
|
} else ElMessage.error(res.msg);
|
|
|
@@ -200,39 +168,22 @@ export default {
|
|
|
},
|
|
|
|
|
|
// 表单提交方法
|
|
|
- async validateForm(mode) {
|
|
|
- const promiseArray = [this.$refs.formRef.validate()];
|
|
|
- this.isMaster && promiseArray.push(await this.$refs.approveForm.$refs.formRef.validate());
|
|
|
-
|
|
|
- return Promise.all(promiseArray).then(() => this.submit(mode)).catch(() => false);
|
|
|
- },
|
|
|
-
|
|
|
submit(mode) {
|
|
|
- API[mode](this.form).then(res => {
|
|
|
- if (res.code === 200) {
|
|
|
- ElMessage.success("操作成功");
|
|
|
- this.visible = false;
|
|
|
- this.fileIsDel = false;
|
|
|
- this.$emit("success", mode);
|
|
|
- } else ElMessage.error(res.msg);
|
|
|
+ this.$refs.formRef.validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ API[mode](this.form).then(res => {
|
|
|
+ if (res.code === 200) {
|
|
|
+ ElMessage.success("操作成功");
|
|
|
+ this.visible = false;
|
|
|
+ this.fileIsDel = false;
|
|
|
+ this.$emit("success", mode);
|
|
|
+ } else ElMessage.error(res.msg);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
});
|
|
|
- },
|
|
|
-
|
|
|
- policyApprove() {
|
|
|
- this.$refs.approveForm.submit();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-</script>
|
|
|
-
|
|
|
-<style lang="scss" scoped>
|
|
|
-.no-upload-btn :deep(.yh-upload-file) {
|
|
|
- .el-upload {
|
|
|
- display: none;
|
|
|
- }
|
|
|
-
|
|
|
- .el-upload-list.is-disabled {
|
|
|
- margin-top: 0;
|
|
|
- }
|
|
|
-}
|
|
|
-</style>
|
|
|
+</script>
|