220 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
			
		
		
	
	
			220 lines
		
	
	
		
			6.2 KiB
		
	
	
	
		
			Vue
		
	
	
	
	
	
| <template>
 | ||
|   <div class="guidance">
 | ||
|     <ai-detail>
 | ||
|       <ai-title slot="title" :title="detailTitle" isShowBack isShowBottomBorder @onBackClick="handleBack"/>
 | ||
|       <template #content>
 | ||
|         <ai-card title="基本信息">
 | ||
|           <template #content>
 | ||
|             <el-form :model="form" :rules="rules" ref="baseInfoForm" label-suffix=":" label-width="100px">
 | ||
|               <el-form-item label="事项名称" prop="processName">
 | ||
|                 <el-input v-model.trim="form.processName" size="small" clearable placeholder="请输入事项名称" :maxlength="30"
 | ||
|                           show-word-limit/>
 | ||
|               </el-form-item>
 | ||
|               <el-row type="type" justify="space-between" :gutter="20">
 | ||
|                 <el-col :span="12">
 | ||
|                   <el-form-item label="所属部门" prop="department">
 | ||
|                     <el-select placeholder="请选择" size="small" v-model="form.department" clearable style="width: 100%;">
 | ||
|                       <el-option
 | ||
|                         v-for="(item,i) in dict.getDict('hbDepartment')" :key="i"
 | ||
|                         :label="item.dictName"
 | ||
|                         :value="item.dictValue">
 | ||
|                       </el-option>
 | ||
|                     </el-select>
 | ||
|                   </el-form-item>
 | ||
|                 </el-col>
 | ||
|                 <el-col :span="12">
 | ||
|                   <el-form-item label="所属分类" prop="classificationId">
 | ||
|                     <el-select placeholder="请选择" size="small" v-model="form.classificationId" clearable
 | ||
|                                style="width: 100%;">
 | ||
|                       <el-option
 | ||
|                         v-for="(item,i) in classList" :key="i"
 | ||
|                         :label="item.name"
 | ||
|                         :value="item.id">
 | ||
|                       </el-option>
 | ||
|                     </el-select>
 | ||
|                   </el-form-item>
 | ||
|                 </el-col>
 | ||
|               </el-row>
 | ||
|               <el-form-item label="办理须知" prop="needToKnow">
 | ||
|                 <ai-editor v-model.trim="form.needToKnow" :instance="instance"/>
 | ||
|               </el-form-item>
 | ||
|               <el-form-item label="是否启用" prop="processDefStatus">
 | ||
|                 <el-switch
 | ||
|                   v-model="form.processDefStatus"
 | ||
|                   active-color="#5088FF"
 | ||
|                   inactive-color="#D0D4DC" active-value="1" inactive-value="0">
 | ||
|                 </el-switch>
 | ||
|               </el-form-item>
 | ||
|             </el-form>
 | ||
|           </template>
 | ||
|         </ai-card>
 | ||
|       </template>
 | ||
|       <template #footer>
 | ||
|         <el-button class="btn" @click="handleBack">取消</el-button>
 | ||
|         <el-button class="btn" type="primary" @click="save">保存</el-button>
 | ||
|       </template>
 | ||
|     </ai-detail>
 | ||
|   </div>
 | ||
| </template>
 | ||
| 
 | ||
| <script>
 | ||
| 
 | ||
|   export default {
 | ||
|     name: "addConfig",
 | ||
|     props: {
 | ||
|       instance: Function,
 | ||
|       dict: Object,
 | ||
|       row: Object,
 | ||
|       processType: String
 | ||
|     },
 | ||
|     data() {
 | ||
|       return {
 | ||
|         form: {
 | ||
|           processName: "",
 | ||
|           department: "",
 | ||
|           classificationId: "",
 | ||
|           needToKnow: "",
 | ||
|           processDefStatus: "1",
 | ||
|         },
 | ||
|         classList: [],
 | ||
|       }
 | ||
|     },
 | ||
|     computed: {
 | ||
|       rules() {
 | ||
|         return {
 | ||
|           processName: [{required: true, message: '请输入事项名称', trigger: 'blur'}],
 | ||
|           department: [{required: true, message: '请选择所属部门', trigger: 'change'}],
 | ||
|           classificationId: [{required: true, message: '请选择所属分类', trigger: 'change'}],
 | ||
|           needToKnow: [{required: true, message: '请输入办理须知', trigger: 'blur'}],
 | ||
|           processDefStatus: [{required: true, message: '请选择是否启用', trigger: 'change'}],
 | ||
|         }
 | ||
|       },
 | ||
|       detailTitle() {
 | ||
|         return this.row?.id ? "编辑办事指南" : "添加办事指南"
 | ||
|       }
 | ||
|     },
 | ||
|     methods: {
 | ||
|       /**
 | ||
|        * 获取分类
 | ||
|        */
 | ||
|       getClassification() {
 | ||
|         this.instance.post(`/app/zwspapprovalclassification/list`, null, {
 | ||
|           params: {
 | ||
|             current: 1,
 | ||
|             status: 1,
 | ||
|             size: 9999
 | ||
|           }
 | ||
|         }).then(res => {
 | ||
|           if (res?.data) {
 | ||
|             this.classList = res.data.records
 | ||
|           }
 | ||
|         })
 | ||
|       },
 | ||
|       /**
 | ||
|        * 保存
 | ||
|        */
 | ||
|       save() {
 | ||
|         this.$refs["baseInfoForm"].validate(valid => {
 | ||
|           if (valid) {
 | ||
|             this.instance.post(`/app/approval-process-def/add-update`, {
 | ||
|               ...this.form,
 | ||
|               id: this.row.id,
 | ||
|               processType: this.processType
 | ||
|             }).then(res => {
 | ||
|               if (res.code == 0) {
 | ||
|                 this.$message.success("保存成功")
 | ||
|                 this.$router.push({query: {}})
 | ||
|               }
 | ||
|             })
 | ||
|           }
 | ||
|         })
 | ||
|       },
 | ||
|       getDetail(id) {
 | ||
|         this.instance.post(`/app/approval-process-def/info-id`, null, {params: {id}}).then(res => {
 | ||
|           if (res?.data) {
 | ||
|             Object.keys(this.form).map(e => this.form[e] = res.data[e])
 | ||
|           }
 | ||
|         })
 | ||
|       },
 | ||
|       handleBack() {
 | ||
|         this.$router.push({query: {}})
 | ||
|       }
 | ||
|     },
 | ||
|     created() {
 | ||
|       this.getClassification()
 | ||
|       if (this.row?.id) {
 | ||
|         this.getDetail(this.row?.id)
 | ||
|       }
 | ||
|     }
 | ||
|   }
 | ||
| </script>
 | ||
| 
 | ||
| <style lang="scss" scoped>
 | ||
|   .add-config {
 | ||
|     height: 100%;
 | ||
| 
 | ||
|     .step {
 | ||
|       width: 100%;
 | ||
|       height: 72px;
 | ||
|       font-size: 14px;
 | ||
| 
 | ||
|       .el-steps {
 | ||
|         display: flex;
 | ||
|         align-items: center;
 | ||
|         height: 72px;
 | ||
|         padding: 0 calc(50% - 380px);
 | ||
| 
 | ||
| 
 | ||
|         ::v-deep .el-step {
 | ||
|           font-weight: bold;
 | ||
| 
 | ||
|           ::v-deep .el-step__icon {
 | ||
|             width: 24px;
 | ||
|             height: 24px;
 | ||
|             background: #fff;
 | ||
| 
 | ||
|             .iconfont {
 | ||
|               font-size: 24px;
 | ||
|             }
 | ||
|           }
 | ||
| 
 | ||
|           ::v-deep .el-step__main {
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
| 
 | ||
|             .el-step__arrow {
 | ||
|               background: #D0D4DC;
 | ||
|               margin: 0 8px;
 | ||
|               height: 2px;
 | ||
| 
 | ||
|               &:before, &:after {
 | ||
|                 display: none;
 | ||
|               }
 | ||
|             }
 | ||
|           }
 | ||
| 
 | ||
|           .is-process {
 | ||
|             color: #2266FF;
 | ||
|           }
 | ||
| 
 | ||
|           .is-wait {
 | ||
|             color: #666;
 | ||
|             border-color: #D0D4DC;
 | ||
|           }
 | ||
|         }
 | ||
| 
 | ||
|       }
 | ||
| 
 | ||
|     }
 | ||
| 
 | ||
|     .btn {
 | ||
|       width: 92px;
 | ||
|       height: 32px;
 | ||
| 
 | ||
|       &:nth-child(2) {
 | ||
|         margin-left: 24px;
 | ||
|       }
 | ||
|     }
 | ||
|   }
 | ||
| </style>
 |