Kaynağa Gözat

feat: fix bug处理

lixiangrui 3 hafta önce
ebeveyn
işleme
697c553a15
2 değiştirilmiş dosya ile 23 ekleme ve 16 silme
  1. 22 15
      src/views/score/event/index.vue
  2. 1 1
      vite.config.js

+ 22 - 15
src/views/score/event/index.vue

@@ -134,17 +134,17 @@
134 134
 
135 135
     <!-- 新增/修改对话框 -->
136 136
     <el-dialog :title="dialogTitle" v-model="dialogVisible" width="680px" append-to-body>
137
-      <el-form ref="formRef" :model="form" :rules="rules" label-width="100px">
137
+      <el-form ref="formRef" :model="form" label-width="100px">
138 138
         <el-row :gutter="16">
139 139
           <el-col :span="12">
140
-            <el-form-item label="配分层级" prop="org">
140
+            <el-form-item label="配分层级" prop="org" :rules="rules.org">
141 141
               <el-select v-model="form.org" placeholder="请选择层级" style="width:100%" @change="handleFormLevelChange">
142 142
                 <el-option v-for="dict in score_level" :key="dict.value" :label="dict.label" :value="dict.value" />
143 143
               </el-select>
144 144
             </el-form-item>
145 145
           </el-col>
146 146
           <el-col :span="12">
147
-            <el-form-item label="维度" prop="dimensionId">
147
+            <el-form-item label="维度" prop="dimensionId" :rules="rules.dimensionId">
148 148
               <el-select v-model="form.dimensionId" placeholder="请选择维度" style="width:100%" @change="onDimensionChange">
149 149
                 <el-option v-for="d in dimensionOptions" :key="d.id" :label="d.name" :value="d.id" />
150 150
               </el-select>
@@ -175,7 +175,7 @@
175 175
             </el-form-item>
176 176
           </el-col>
177 177
           <el-col :span="12">
178
-            <el-form-item label="事件时间" prop="eventTime">
178
+            <el-form-item label="事件时间" prop="eventTime" :rules="rules.eventTime">
179 179
               <el-date-picker v-model="form.eventTime" type="datetime" value-format="YYYY-MM-DD HH:mm:ss"
180 180
                 placeholder="请选择事件时间" style="width:100%" />
181 181
             </el-form-item>
@@ -186,7 +186,7 @@
186 186
             </el-form-item>
187 187
           </el-col>
188 188
           <el-col :span="12">
189
-            <el-form-item label="部门名称">
189
+            <el-form-item label="部门名称" prop="deptId" :rules="rules.deptId">
190 190
               <el-select v-model="form.deptId" placeholder="请选择部门" style="width:100%" clearable filterable
191 191
                 @change="handleDeptChange">
192 192
                 <el-option v-for="d in deptOptions" :key="d.deptId" :label="d.deptName" :value="d.deptId" />
@@ -194,7 +194,7 @@
194 194
             </el-form-item>
195 195
           </el-col>
196 196
           <el-col :span="12">
197
-            <el-form-item label="队室/班组">
197
+            <el-form-item label="队室/班组" prop="teamId" :rules="rules.teamId">
198 198
               <el-select v-model="form.teamId" placeholder="请选择队室/班组" style="width:100%" clearable filterable
199 199
                 :disabled="form.org < 2" @change="handleTeamChange">
200 200
                 <el-option v-for="t in teamOptions" :key="t.id" :label="t.label" :value="t.id" />
@@ -202,7 +202,7 @@
202 202
             </el-form-item>
203 203
           </el-col>
204 204
           <el-col :span="12">
205
-            <el-form-item label="通道/小组">
205
+            <el-form-item label="通道/小组" prop="groupId" :rules="rules.groupId">
206 206
               <el-select v-model="form.groupId" placeholder="请选择通道/小组" style="width:100%" clearable filterable
207 207
                 :disabled="form.org < 3" @change="handleGroupChange">
208 208
                 <el-option v-for="g in groupOptions" :key="g.id" :label="g.label" :value="g.id" />
@@ -210,7 +210,7 @@
210 210
             </el-form-item>
211 211
           </el-col>
212 212
           <el-col :span="12">
213
-            <el-form-item label="责任人">
213
+            <el-form-item label="责任人" prop="personId" :rules="rules.personId">
214 214
               <el-select v-model="form.personId" placeholder="请选择责任人" style="width:100%" clearable filterable
215 215
                 :disabled="form.org < 4">
216 216
                 <el-option v-for="p in personOptions" :key="p.userId" :label="p.nickName" :value="p.userId" />
@@ -285,12 +285,19 @@ const queryPersonOptions = ref([])
285 285
 
286 286
 const queryParams = reactive({ pageNum: 1, pageSize: 10, personId: null, personName: '', deptId: null, deptName: '', teamId: null, teamName: '', groupId: null, groupName: '', dimensionId: null, sourceType: '', org: '' })
287 287
 const form = reactive({ id: null, dimensionId: null, dimensionName: '', indicatorId: null, level2Id: null, level2Name: '', level3Id: null, level3Name: '', level4Id: null, level4Name: '', eventTime: '', location: '', personId: null, deptName: '', deptId: null, teamId: null, groupId: null, scoreValue: 0, cascadeScore: 0, eventDesc: '', remark: '', org: '' })
288
-const rules = {
289
-  dimensionId: [{ required: true, message: '请选择维度', trigger: 'change' }],
290
-  personName: [{ required: true, message: '请输入责任人', trigger: 'blur' }],
291
-  eventTime: [{ required: true, message: '请选择事件时间', trigger: 'change' }],
292
-  scoreValue: [{ required: true, message: '请输入分值', trigger: 'blur' }]
293
-}
288
+const rules = computed(() => {
289
+  return {
290
+    org: [{ required: true, message: '请选择配分层级', trigger: 'submit' }],
291
+    dimensionId: [{ required: true, message: '请选择维度', trigger: 'submit' }],
292
+    personName: [{ required: true, message: '请输入责任人', trigger: 'submit' }],
293
+    eventTime: [{ required: true, message: '请选择事件时间', trigger: 'submit' }],
294
+    scoreValue: [{ required: true, message: '请输入分值', trigger: 'submit' }],
295
+    deptId: ['1', '2', '3', '4'].includes(form.org) ? [{ required: true, message: '请选择部门', trigger: 'submit' }] : [],
296
+    teamId: ['2', '3', '4'].includes(form.org) ? [{ required: true, message: '请选择队室/班组', trigger: 'submit' }] : [],
297
+    groupId: ['3', '4'].includes(form.org) ? [{ required: true, message: '请选择通道/小组', trigger: 'submit' }] : [],
298
+    personId: ['4'].includes(form.org) ? [{ required: true, message: '请选择责任人', trigger: 'submit' }] : [],
299
+  }
300
+})
294 301
 
295 302
 
296 303
 
@@ -450,7 +457,7 @@ async function onDimensionChange(dimId, preserveSelection) {
450 457
   if (dim) form.dimensionName = dim.name
451 458
   const r = await treeIndicator({ dimensionId: dimId, org: form.org })
452 459
   indicatorTree.value = r.data || []
453
-  level2Options.value = indicatorTree.value.map(n => ({ name: n.name, id: n.id, scoreValue: n.scoreValue }))
460
+  level2Options.value = indicatorTree.value.filter(item => item.type !== '3').map(n => ({ name: n.name, id: n.id, scoreValue: n.scoreValue }))
454 461
   if (!preserveSelection) { form.level2Id = null; form.level2Name = ''; form.level3Id = null; form.level3Name = ''; form.level4Id = null; form.level4Name = ''; form.scoreValue = 0 }
455 462
   level3Options.value = []; level4Options.value = []
456 463
   if (preserveSelection && form.level2Id) onLevel2Change(form.level2Id, true)

+ 1 - 1
vite.config.js

@@ -3,7 +3,7 @@ import path from 'path'
3 3
 import createVitePlugins from './vite/plugins'
4 4
 
5 5
 // const baseUrl = 'http://localhost:8088' // 后端接口
6
-const baseUrl = 'http://airport.samsundot.com:9035/prod-api'
6
+const baseUrl = 'http://airport-test.samsundot.com:9035/prod-api'
7 7
 // https://vitejs.dev/config/
8 8
 export default defineConfig(({ mode, command }) => {
9 9
   const env = loadEnv(mode, process.cwd())