Przeglądaj źródła

feat: 修改问题状态label与value对应值

bxy 1 rok temu
rodzic
commit
8cef86d803

+ 9 - 2
src/views/datamanager/alertformdata/components/common/QueryForm.vue

@@ -17,7 +17,7 @@
             @change="handleCascaderChange" />
         </el-form-item>
         <el-form-item label="状态:" prop="issueState">
-          <el-select v-model="queryForm.issueState" clearable>
+          <el-select v-model="tempState" clearable @change="handleIssueStateChange">
             <el-option v-for="item in issueStateOptions" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
         </el-form-item>
@@ -57,7 +57,7 @@ interface QueryModel {
   source?: number,         // 来源
   issueType?: number,      // 类型
   workspaceId?: number[],  // 地点=工位id
-  issueState?: number,     // 状态
+  issueState?: number[],   // 状态
   startTime?: string,      // 开始时间(默认)
   endTime?: string,        // 结束时间(默认)
 };
@@ -77,6 +77,7 @@ const options = ref<OptionModel[]>([]);
 const typeDisable = ref(true);
 const location = { multiple: true };  // 级联选择器(打开多选)
 const workLocation = ref([]);   // 级联选择器,为二维数组(提取workspaceId)
+const tempState = ref('');  // 状态,字符串转number[]
 const dateRange = ref([]);  // 时间段,拆分成startTime/endTime
 const defaultTime = ref<[Date, Date]>([
   new Date(2000, 1, 1, 0, 0, 0),
@@ -90,6 +91,7 @@ const handleSearch = () => {
 const handleReset = () => {
   typeDisable.value = true;
   workLocation.value = [];
+  tempState.value = '';
   dateRange.value = [];
   Reflect.deleteProperty(queryForm, "startTime");
   Reflect.deleteProperty(queryForm, "endTime");
@@ -121,6 +123,11 @@ const handleCascaderChange = () => {
   queryForm.workspaceId = arr;
 };
 
+const handleIssueStateChange = () => {
+  if (tempState.value)
+    queryForm.issueState = JSON.parse(tempState.value);
+};
+
 const handleDateChange = () => {
   if (dateRange.value != null) {
     queryForm.startTime = dateRange.value[0];

+ 21 - 3
src/views/datamanager/alertformdata/components/common/QuestionFormBase.vue

@@ -41,7 +41,7 @@
         </el-form-item>
         <el-form-item label="问题状态:" prop="issueState" :rules="{ required: true, message: '请完成必填项' }">
           <el-select v-model="formData.issueState" placeholder="请选择问题状态" clearable>
-            <el-option v-for="item in issueStateOptions" :key="item.value" :label="item.label" :value="item.value" />
+            <el-option v-for="item in issueStateOptionsAdd" :key="item.value" :label="item.label" :value="item.value" />
           </el-select>
         </el-form-item>
         <el-form-item>
@@ -59,7 +59,7 @@
 import { computed, onBeforeMount, onMounted, reactive, ref } from 'vue';
 import type { FormInstance, UploadProps, UploadUserFile } from 'element-plus';
 import { Plus } from '@element-plus/icons-vue';
-import { sourceOptions, issueStateOptions } from './constant.question';
+import { IssueState, sourceOptions, issueStateOptionsAdd } from './constant.question';
 import { useIssueType } from '../../hooks/useIssueType';
 import { useWorkLocation } from '../../hooks/useWorkLocation';
 import { useUserStore } from '@/store/modules/user';
@@ -145,7 +145,25 @@ const handleCopyData = () => {
   formData.workshopId = props.initialData?.workshopId;
   formData.workspaceId = props.initialData?.workspaceId;
   formData.createdAt = props.initialData?.createdAt;
-  formData.issueState = props.initialData?.issueState;
+  console.log(props.initialData?.issueState);
+  switch (props.initialData?.issueState) {
+    case IssueState.toAuth0:
+      formData.issueState = 2;
+      break;
+    case IssueState.toAuth1:
+      formData.issueState = 2;
+      break;
+    case IssueState.toDeal6:
+      formData.issueState = 4;
+      break;
+    case IssueState.hasDone7:
+      formData.issueState = 8;
+      break;
+    default:
+      formData.issueState = props.initialData?.issueState;
+      break;
+  }
+  console.log(formData.issueState);
 
   workLocation.value = [props.initialData?.workshopId, props.initialData?.workspaceId!];
   fileList.value = props.initialData?.pictures?.map(str => ({ name: str, url: str })) || [];

+ 30 - 14
src/views/datamanager/alertformdata/components/common/constant.question.ts

@@ -20,27 +20,43 @@ export const getNameBySource = (source: Source) => {
 
 // 问题状态
 export enum IssueState {
-  toAuth = 1,
-  toDeal = 2,
-  toReview = 3,
-  toRetreat = 4,
-  hasDone = 5,
+  toAuth0 = 0,
+  toAuth1 = 1,
+  toAuth2 = 2,    // 待审核
+  hasRevoke = 3,  // 已撤销
+  toDeal4 = 4,    // 待处理
+  toDeal6 = 6,
+  toReview = 5,   // 待复核
+  hasDone7 = 7,
+  hasDone8 = 8,   // 已处理
 }
 export const issueStateNameMap = {
-  [IssueState.toAuth]: '待审核',
-  [IssueState.toDeal]: '待处理',
+  [IssueState.toAuth0]: '待审核',
+  [IssueState.toAuth1]: '待审核',
+  [IssueState.toAuth2]: '待审核',
+  [IssueState.hasRevoke]: '已撤销',
+  [IssueState.toDeal4]: '待处理',
+  [IssueState.toDeal6]: '待处理',
   [IssueState.toReview]: '待复核',
-  [IssueState.toRetreat]: '已退回',
-  [IssueState.hasDone]: '已处理',
+  [IssueState.hasDone7]: '已处理',
+  [IssueState.hasDone8]: '已处理',
 }
-// 问题状态下拉框选项
+// 问题状态下拉框选项(默认数据——待审核(012) 待处理(46) 待复核(5) 已处理(78) 已撤销(3))
 export const issueStateOptions = [
-  { label: issueStateNameMap[IssueState.toAuth], value: IssueState.toAuth },
-  { label: issueStateNameMap[IssueState.toDeal], value: IssueState.toDeal },
+  { label: issueStateNameMap[IssueState.toAuth0], value: '[0, 1, 2]' },
+  { label: issueStateNameMap[IssueState.toDeal4], value: '[4, 6]' },
+  { label: issueStateNameMap[IssueState.toReview], value: '[5]' },
+  { label: issueStateNameMap[IssueState.hasDone7], value: '[7,8]' },
+  { label: issueStateNameMap[IssueState.hasRevoke], value: '[3]' }
+]
+
+export const issueStateOptionsAdd = [
+  { label: issueStateNameMap[IssueState.toAuth2], value: IssueState.toAuth2 },
+  { label: issueStateNameMap[IssueState.toDeal4], value: IssueState.toDeal4 },
   { label: issueStateNameMap[IssueState.toReview], value: IssueState.toReview },
-  { label: issueStateNameMap[IssueState.toRetreat], value: IssueState.toRetreat },
-  { label: issueStateNameMap[IssueState.hasDone], value: IssueState.hasDone }
+  { label: issueStateNameMap[IssueState.hasDone8], value: IssueState.hasDone8 },
 ]
+
 // 表格数据-转换value为label
 export const getNameByState = (issueState: IssueState) => {
   return issueStateNameMap[issueState] || '-'