| | |
| | | # 本地环境 |
| | | ENV = 'development' |
| | | |
| | | #VITE_API_URL = 'http://192.168.0.35:8008' |
| | | VITE_API_URL = 'http://192.168.0.35:8008' |
| | | #李宇飞接口地址 |
| | | |
| | | VITE_API_URL = 'http://192.168.0.50:8008' |
| | | #VITE_API_URL = 'http://192.168.0.50:8008' |
| | | #张凤接口地址 |
| | | |
| | | #VITE_API_URL = 'http://192.168.0.29:8008' |
对比新文件 |
| | |
| | | Index: src/views/facilityManagement/claimReturnRecords/components/returnAndWatch.vue |
| | | IDEA additional info: |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |
| | | <+><template>\r\n <div class=\"system-add-menu-container\">\r\n <el-dialog :title=\"returnAndWatchState.title\" :close-on-click-modal=\"false\" v-model=\"returnAndWatchState.showReturnAndWatchDialog\" width=\"50%\">\r\n <el-tabs class=\"active\" v-model=\"returnAndWatchState.activeName\">\r\n <el-tab-pane label=\"未归还\" name=\"noReturn\">\r\n <el-table\r\n :data=\"returnAndWatchState.noReturnData\"\r\n border fit highlight-current-row lazy\r\n :header-cell-style=\"{ background: '#fafafa' }\"\r\n style=\"width: 100%\"\r\n @selection-change=\"handleSelectionChange\"\r\n >\r\n <el-table-column v-if=\"returnAndWatchState.ifShow === true\" type=\"selection\" width=\"55\"/>\r\n <el-table-column prop=\"materialName\" label=\"物资名称\" show-overflow-tooltip align=\"center\"/>\r\n <el-table-column prop=\"smdId\" label=\"物资编号\" show-overflow-tooltip align=\"center\"/>\r\n <el-table-column prop=\"materialStatus\" label=\"物资状态\" show-overflow-tooltip align=\"center\">\r\n <template #default=\"scope\">\r\n <span>\r\n {{ filterMaterialStatus(scope.row.materialStatus) }}\r\n </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"remark\" label=\"备注\" show-overflow-tooltip align=\"center\"/>\r\n <el-table-column label=\"操作\" width=\"150\" align=\"center\">\r\n <template #default=\"scope\">\r\n <el-button size=\"small\" v-if=\"returnAndWatchState.ifShow === true\" text type=\"danger\" :icon=\"Delete\" @click=\"invalidDeal(scope.row)\">无效处理</el-button>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div style=\"padding-top: 20px\" align=\"center\">\r\n <span>\r\n <el-button type=\"primary\" v-if=\"returnAndWatchState.ifShow === true\" @click=\"returnConfirm\" v-throttle size=\"default\">归 还</el-button>\r\n </span>\r\n </div>\r\n\r\n </el-tab-pane>\r\n <el-tab-pane label=\"已归还\" name=\"return\">\r\n <el-table\r\n :data=\"returnAndWatchState.returnData\"\r\n border fit highlight-current-row lazy\r\n :header-cell-style=\"{ background: '#fafafa' }\"\r\n style=\"width: 100%\">\r\n <el-table-column prop=\"materialName\" label=\"物资名称\" show-overflow-tooltip align=\"center\"/>\r\n <el-table-column prop=\"smdId\" label=\"物资编号\" show-overflow-tooltip align=\"center\"/>\r\n <el-table-column prop=\"materialStatus\" label=\"物资状态\" show-overflow-tooltip align=\"center\">\r\n <template #default=\"scope\">\r\n <span>\r\n {{ filterMaterialStatus(scope.row.materialStatus) }}\r\n </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"remark\" label=\"备注\" show-overflow-tooltip align=\"center\"/>\r\n </el-table>\r\n </el-tab-pane>\r\n <el-tab-pane label=\"耗材\" name=\"Invalid\">\r\n <el-table\r\n :data=\"returnAndWatchState.invalidData\"\r\n border fit highlight-current-row lazy\r\n :header-cell-style=\"{ background: '#fafafa' }\"\r\n style=\"width: 100%\">\r\n <el-table-column prop=\"materialName\" label=\"物资名称\" show-overflow-tooltip align=\"center\"/>\r\n <el-table-column prop=\"smdId\" label=\"物资编号\" show-overflow-tooltip align=\"center\"/>\r\n <el-table-column prop=\"materialStatus\" label=\"物资状态\" show-overflow-tooltip align=\"center\">\r\n <template #default=\"scope\">\r\n <span>\r\n {{ filterMaterialStatus(scope.row.materialStatus) }}\r\n </span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column prop=\"remark\" label=\"备注\" show-overflow-tooltip align=\"center\"/>\r\n </el-table>\r\n </el-tab-pane>\r\n </el-tabs>\r\n </el-dialog>\r\n <invalid-deal-dialog ref=\"invalidDealDialogRef\" @refreshInvalidDeal=\"refreshInvalidDeal\"></invalid-deal-dialog>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {computed, nextTick, onMounted, reactive, ref, toRefs, watch} from 'vue'\r\nimport { Edit, Delete, } from '@element-plus/icons-vue';\r\nimport {\r\n claimReturnDataType, InvalidDealFormType,\r\n materialType,\r\n ReturnAndWatchType\r\n} from \"/@/views/facilityManagement/claimReturnRecords/index\";\r\nimport {ElMessage, ElMessageBox} from \"element-plus\";\r\nimport {claimReturnRecordsApi} from \"/@/api/facilityManagement/claimReturnRecords\";\r\nimport InvalidDealDialog from './invalidDealDialog.vue'\r\n\r\nconst invalidDealDialogRef = ref()\r\n\r\nconst returnAndWatchState = reactive<ReturnAndWatchType>({\r\n title: '',\r\n ifShow: false,\r\n goodsClassifyTitle: '',\r\n showReturnAndWatchDialog: false,\r\n activeName: 'noReturn',\r\n goodsClassifyForm: {\r\n id: null,\r\n materialClassifyName: '',\r\n parentId: null,\r\n },\r\n goodsClassifyRules: {\r\n\r\n },\r\n returnData: [],\r\n noReturnData: [],\r\n invalidData: [],\r\n returnFormList: {\r\n receiveBaseId: null,\r\n materialList: []\r\n },\r\n reasonList:[\r\n {id: 0, name:'完好'},\r\n {id: 1, name:'损坏'},\r\n {id: 2, name:'丢失'},\r\n {id: 3, name:'过期'},\r\n {id: 4, name:'其他'}\r\n ]\r\n});\r\n\r\nconst openReturnAndWatchDialog = (title: string, value: claimReturnDataType ) => {\r\n returnAndWatchState.showReturnAndWatchDialog = true;\r\n returnAndWatchState.returnFormList.receiveBaseId = value.id;\r\n if(title === '归还'){\r\n returnAndWatchState.ifShow = true;\r\n returnAndWatchState.title = '归还记录';\r\n returnAndWatchState.returnData = value.materialList.filter(item => item.revertStatus === 0);\r\n returnAndWatchState.noReturnData = JSON.parse(JSON.stringify(value.materialList.filter(item => item.revertStatus === 1)));\r\n returnAndWatchState.invalidData = value.materialList.filter(item => item.revertStatus !== 0 && item.revertStatus !== 1);\r\n }else {\r\n returnAndWatchState.ifShow = false;\r\n returnAndWatchState.title = '查看物资';\r\n returnAndWatchState.returnData = value.materialList.filter(item => item.revertStatus === 0);\r\n returnAndWatchState.noReturnData = value.materialList.filter(item => item.revertStatus === 1);\r\n returnAndWatchState.invalidData = value.materialList.filter(item => item.revertStatus !== 0 && item.revertStatus !== 1);\r\n }\r\n};\r\n\r\nconst returnConfirm = () => {\r\n if(returnAndWatchState.returnFormList.materialList.length > 0){\r\n ElMessageBox.confirm(`此操作将把所选中物资全部归还,是否继续?`, '提示', {\r\n confirmButtonText: '确认',\r\n cancelButtonText: '取消',\r\n type: 'warning'\r\n })\r\n .then(async () => {\r\n let res = await claimReturnRecordsApi().returnGoods(returnAndWatchState.returnFormList);\r\n if (res.data.code === '200') {\r\n ElMessage({\r\n type: 'success',\r\n duration: 2000,\r\n message: '物资归还成功'\r\n });\r\n await refreshReturnTableData()\r\n emit('refreshReturnData')\r\n } else {\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n })\r\n .catch(() => {});\r\n }else{\r\n ElMessage({\r\n type:'warning',\r\n message: '请选择要归还的物资'\r\n })\r\n }\r\n};\r\n\r\nconst refreshReturnTableData = async () => {\r\n let res = await claimReturnRecordsApi().refreshReturnAndNoReturn({id: returnAndWatchState.returnFormList.receiveBaseId})\r\n if(res.data.code === '200'){\r\n returnAndWatchState.returnData = res.data.data.materialList.filter((item: materialType) => item.revertStatus === 0);\r\n returnAndWatchState.noReturnData = res.data.data.materialList.filter((item: materialType) => item.revertStatus === 1);\r\n returnAndWatchState.invalidData = res.data.data.materialList.filter((item: materialType) => item.revertStatus !== 0 && item.revertStatus !== 1);\r\n }else{\r\n ElMessage({\r\n type: 'warning',\r\n message: res.data.msg\r\n });\r\n }\r\n}\r\n\r\nconst invalidDeal = (value: materialType) => {\r\n invalidDealDialogRef.value.openInvalidDealDialog(value)\r\n};\r\n\r\nconst refreshInvalidDeal = (value: InvalidDealFormType) => {\r\n let returnDataNum = returnAndWatchState.noReturnData.findIndex(item => item.id == value.id)\r\n returnAndWatchState.noReturnData[returnDataNum].materialStatus = value.reason as number\r\n returnAndWatchState.noReturnData[returnDataNum].remark = value.remark as string\r\n for(let i in returnAndWatchState.returnFormList.materialList){\r\n if(returnAndWatchState.returnFormList.materialList[i].receiveId === value.id){\r\n returnAndWatchState.returnFormList.materialList[i] = {\r\n receiveId: value.id,\r\n materialStatus: value.reason,\r\n remark: value.remark,\r\n }\r\n }\r\n }\r\n}\r\n\r\nconst handleSelectionChange = (val: materialType []) => {\r\n returnAndWatchState.returnFormList.materialList = val.map((item: materialType) => {\r\n return {\r\n receiveId: item.id,\r\n materialStatus: item.materialStatus,\r\n remark: item.remark,\r\n }\r\n })\r\n};\r\n\r\nconst filterMaterialStatus = (value: number) => {\r\n return returnAndWatchState.reasonList.find(item => item.id === value)?.name\r\n}\r\n\r\nconst emit = defineEmits(['refreshReturnData']);\r\n\r\ndefineExpose({\r\n openReturnAndWatchDialog,\r\n});\r\n\r\n\r\n</script>\r\n\r\n<style scoped>\r\n/*:deep(.el-overlay .el-overlay-dialog .el-dialog .el-dialog__body) {*/\r\n/* padding-bottom: 20px !important;*/\r\n/*}*/\r\n:deep(.el-table .big-row) {\r\n font-size: 16px !important;\r\n font-weight: 700;\r\n}\r\n\r\n</style>\r\n |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP |
| | | <+>UTF-8 |
| | | =================================================================== |
| | | diff --git a/src/views/facilityManagement/claimReturnRecords/components/returnAndWatch.vue b/src/views/facilityManagement/claimReturnRecords/components/returnAndWatch.vue |
| | | --- a/src/views/facilityManagement/claimReturnRecords/components/returnAndWatch.vue (revision da7a467fd8c4a82769ff275e21c1f2f45027b351) |
| | | +++ b/src/views/facilityManagement/claimReturnRecords/components/returnAndWatch.vue (date 1673832385241) |
| | | @@ -202,7 +202,7 @@ |
| | | } |
| | | } |
| | | } |
| | | -} |
| | | +}; |
| | | |
| | | const handleSelectionChange = (val: materialType []) => { |
| | | returnAndWatchState.returnFormList.materialList = val.map((item: materialType) => { |
| | | @@ -216,7 +216,7 @@ |
| | | |
| | | const filterMaterialStatus = (value: number) => { |
| | | return returnAndWatchState.reasonList.find(item => item.id === value)?.name |
| | | -} |
| | | +}; |
| | | |
| | | const emit = defineEmits(['refreshReturnData']); |
| | | |
| | | Index: .env.development |
| | | IDEA additional info: |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |
| | | <+># 本地环境\r\nENV = 'development'\r\n\r\n#VITE_API_URL = 'http://192.168.0.35:8008'\r\n#李宇飞接口地址\r\n\r\nVITE_API_URL = 'http://192.168.0.50:8008'\r\n#张凤接口地址\r\n\r\n#VITE_API_URL = 'http://192.168.0.29:8008'\r\n#黄振接口地址\r\n\r\n#VITE_API_URL = 'http://192.168.0.179:8008'\r\n#施正红接口地址\r\n\r\n#VITE_API_URL = 'http://192.168.0.69:8008'\r\n#戚会山接口地址\r\n\r\n#VITE_API_URL = 'http://121.239.169.27:16006/safeplatform'\r\n#线上正式环境接口地址\r\n\r\n#VITE_API_URL_OUT = 'http://121.239.169.27:16006/safeplatform-out'\r\n#线上正式环境外包接口地址\r\n\r\n#VITE_API_URL = 'http://192.168.0.52:8011/safeplatform'\r\n#本地预发接口地址\r\n\r\n#VITE_API_URL_OUT = 'http://192.168.0.52:8011/safeplatform-out'\r\n#本地外包预发接口地址\r\n\r\n\r\nVITE_API_URL_OUT = 'http://192.168.0.50:8009'\r\n#张凤外包接口地址\r\n\r\n#VITE_API_URL_OUT = 'http://192.168.0.52:7021/safeplatform-out'\r\n\r\n\r\n#VITE_API_URL = 'http://192.168.0.52:7021/safeplatform'\r\n#本地测试接口地址\r\n\r\nVITE_API_URL_SOCKET = 'http://192.168.0.52:7021/safeplatform'\r\n#本地测试websocket接口地址\r\n\r\n#VITE_API_URL = 'http://192.168.0.29:7008'\r\n#黄振接口test地址\r\n\r\n#VITE_API_URL_SOCKET = 'http://192.168.0.29:16107'\r\n#黄振websocket test接口地址\r\n\r\n#VITE_API_URL_SOCKET = 'http://192.168.0.29:8018'\r\n#黄振websocket接口地址\r\n |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP |
| | | <+>UTF-8 |
| | | =================================================================== |
| | | diff --git a/.env.development b/.env.development |
| | | --- a/.env.development (revision da7a467fd8c4a82769ff275e21c1f2f45027b351) |
| | | +++ b/.env.development (date 1675906287651) |
| | | @@ -1,10 +1,10 @@ |
| | | # 本地环境 |
| | | ENV = 'development' |
| | | |
| | | -#VITE_API_URL = 'http://192.168.0.35:8008' |
| | | +VITE_API_URL = 'http://192.168.0.35:8008' |
| | | #李宇飞接口地址 |
| | | |
| | | -VITE_API_URL = 'http://192.168.0.50:8008' |
| | | +#VITE_API_URL = 'http://192.168.0.50:8008' |
| | | #张凤接口地址 |
| | | |
| | | #VITE_API_URL = 'http://192.168.0.29:8008' |
| | | Index: src/views/facilityManagement/safetyGoodsAndEquipment/components/safetyGoodsAndEquipmentDialog.vue |
| | | IDEA additional info: |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |
| | | <+><template>\r\n <div class=\"system-add-menu-container\">\r\n <el-dialog :title=\"dialogState.title\" :close-on-click-modal=\"false\" v-model=\"dialogState.showSafetyGoodsAndEquipmentDialog\" width=\"600px\">\r\n <el-form\r\n :model=\"dialogState.safetyGoodsAndEquipmentForm\"\r\n :rules=\"dialogState.safetyGoodsAndEquipmentRules\"\r\n ref=\"safetyGoodsAndEquipmentRef\"\r\n size=\"default\"\r\n v-loading=\"dialogState.loading\"\r\n element-loading-text=\"Loading...\"\r\n label-width=\"120px\">\r\n <el-row>\r\n <el-col :span=\"24\" class=\"mb20\">\r\n <el-form-item label=\"物资大类\" prop=\"bigClassifyId\">\r\n <el-select v-model=\"dialogState.safetyGoodsAndEquipmentForm.bigClassifyId\" @change=\"changeSmallClassify(null)\" placeholder=\"物资大类\" class=\"input-add\">\r\n <el-option\r\n v-for=\"item in dialogState.goodsBigClassifyList\"\r\n :key=\"item.id\"\r\n :value=\"item.id\"\r\n :label=\"item.materialClassifyName\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n<!-- <el-col :span=\"5\">-->\r\n<!-- <el-button type=\"primary\" @click=\"openAddGoods\">添加物资</el-button>-->\r\n<!-- </el-col>-->\r\n <el-col :xs=\"24\" :sm=\"24\" :md=\"24\" :lg=\"24\" :xl=\"24\" class=\"mb20\">\r\n <el-form-item label=\"物资小类\" prop=\"smallClassifyId\">\r\n <el-select class=\"input-add\" v-model=\"dialogState.safetyGoodsAndEquipmentForm.smallClassifyId\" placeholder=\"请先选择物资大类\">\r\n <el-option\r\n v-for=\"item in dialogState.goodsSmallClassifyList\"\r\n :key=\"item.id\"\r\n :value=\"item.id\"\r\n :label=\"item.materialClassifyName\"\r\n ></el-option>\r\n </el-select>\r\n </el-form-item>\r\n </el-col>\r\n\r\n <el-col :xs=\"24\" :sm=\"24\" :md=\"24\" :lg=\"24\" :xl=\"24\" class=\"mb20\">\r\n <el-form-item label=\"部门\" prop=\"depId\">\r\n <el-cascader\r\n :disabled=\"true\"\r\n :options=\"dialogState.departmentList\"\r\n :props=\"{ emitPath: false, checkStrictly: true, value: 'depId', label: 'depName' }\"\r\n placeholder=\"请选择部门\"\r\n clearable\r\n class=\"input-add\"\r\n v-model=\"dialogState.safetyGoodsAndEquipmentForm.depId\">\r\n </el-cascader>\r\n </el-form-item>\r\n </el-col>\r\n<!-- <el-col :xs=\"24\" :sm=\"24\" :md=\"24\" :lg=\"24\" :xl=\"24\" class=\"mb20\">-->\r\n<!-- <el-form-item label=\"是否耗材\" prop=\"consumable\">-->\r\n<!-- <el-select class=\"input-add\" v-model=\"dialogState.safetyGoodsAndEquipmentForm.consumable\" placeholder=\"是否耗材\" clearable filterable>-->\r\n<!-- <el-option-->\r\n<!-- v-for=\"item in dialogState.consumableList\"-->\r\n<!-- :key=\"item.id\"-->\r\n<!-- :value=\"item.id\"-->\r\n<!-- :label=\"item.name\"-->\r\n<!-- >-->\r\n<!-- </el-option>-->\r\n<!-- </el-select>-->\r\n<!-- </el-form-item>-->\r\n<!-- </el-col>-->\r\n </el-row>\r\n </el-form>\r\n <template #footer>\r\n <span class=\"dialog-footer\">\r\n <el-button @click=\"dialogState.showSafetyGoodsAndEquipmentDialog = !dialogState.showSafetyGoodsAndEquipmentDialog\" size=\"default\">取 消</el-button>\r\n <el-button type=\"primary\" @click=\"submitSafetyGoodsAndEquipment\" v-throttle size=\"default\">确 定</el-button>\r\n </span>\r\n </template>\r\n </el-dialog>\r\n <add-goods-dialog ref=\"addGoodsDialogRef\" @refreshClassify=\"getAllSafetyEquipmentList\"></add-goods-dialog>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport {computed, nextTick, reactive, ref, watch} from 'vue'\r\nimport {\r\n BigClassifyType,\r\n DataType, DepartmentType,\r\n isValidKey,\r\n SafetyGoodsAndEquipmentDialogStateType, safetyGoodsAndEquipmentFormType\r\n} from \"/@/views/facilityManagement/safetyGoodsAndEquipment/index\";\r\nimport { goodsAndEquipmentApi } from \"/@/api/facilityManagement/safetyGoodsAndEquipment\";\r\nimport {ElMessage} from \"element-plus\";\r\nimport AddGoodsDialog from \"./addGoodsDialog.vue\";\r\nimport {useUserInfo} from \"/@/stores/userInfo\";\r\n\r\nconst safetyGoodsAndEquipmentRef = ref();\r\nconst addGoodsDialogRef = ref();\r\nconst userInfo = useUserInfo()\r\n\r\nconst dialogState = reactive<SafetyGoodsAndEquipmentDialogStateType>({\r\n safetyGoodsAndEquipmentForm: {\r\n id: null,\r\n bigClassifyId: null,\r\n smallClassifyId: null,\r\n depId: null,\r\n // consumable: null,\r\n },\r\n safetyGoodsAndEquipmentRules: {\r\n bigClassifyId: [{ required: true, message: '请选择物资大类', trigger: 'change' }],\r\n smallClassifyId: [{ required: true, message: '请选择物资小类', trigger: 'change' }],\r\n // depId: [{ required: true, message: '请选择部门', trigger: 'change' }],\r\n // consumable: [{ required: true, message: '请选择是否耗材', trigger: 'change' }],\r\n },\r\n showSafetyGoodsAndEquipmentDialog: false,\r\n title: '',\r\n loading: false,\r\n depList: [],\r\n goodsBigClassifyList: [],\r\n goodsSmallClassifyList: [],\r\n departmentList: [],\r\n consumableList: [\r\n {id: 0, name: '是'},\r\n {id: 1, name: '否'},\r\n ],\r\n});\r\n\r\nwatch(() => dialogState.safetyGoodsAndEquipmentForm.bigClassifyId ,(newVal, oldVal) => {\r\n\r\n},);\r\n\r\n// const openAddGoods = () => {\r\n// addGoodsDialogRef.value.openAddGoodsDialog(dialogState.goodsBigClassifyList)\r\n// }\r\n\r\nconst openSafetyGoodsAndEquipmentDialog =\r\n (title: string, value: safetyGoodsAndEquipmentFormType, goodsBigClassifyList: BigClassifyType [], departmentList : DepartmentType []) => {\r\n dialogState.title = title;\r\n dialogState.showSafetyGoodsAndEquipmentDialog = true;\r\n dialogState.goodsBigClassifyList = goodsBigClassifyList;\r\n dialogState.departmentList = departmentList;\r\n dialogState.safetyGoodsAndEquipmentForm = {\r\n id: null,\r\n bigClassifyId: null,\r\n smallClassifyId: null,\r\n depId: userInfo.userInfos.depId,\r\n // consumable: null,\r\n };\r\n nextTick( () => {\r\n safetyGoodsAndEquipmentRef.value.clearValidate();\r\n })\r\n if(title === '新增') {\r\n dialogState.title = '新增'\r\n }else {\r\n dialogState.title = '编辑'\r\n changeSmallClassify(value.bigClassifyId)\r\n for(let key in dialogState.safetyGoodsAndEquipmentForm) {\r\n if(isValidKey(key, dialogState.safetyGoodsAndEquipmentForm)){\r\n dialogState.safetyGoodsAndEquipmentForm[key] = value[key];\r\n }\r\n }\r\n }\r\n};\r\n\r\nconst changeSmallClassify = (id: number | null) => {\r\n dialogState.safetyGoodsAndEquipmentForm.smallClassifyId = null;\r\n dialogState.goodsSmallClassifyList = dialogState.goodsBigClassifyList[dialogState.goodsBigClassifyList.\r\n findIndex(item => item.id === (dialogState.safetyGoodsAndEquipmentForm.bigClassifyId || id))].childList as Array<BigClassifyType>;\r\n}\r\n\r\nconst submitSafetyGoodsAndEquipment = () => {\r\n safetyGoodsAndEquipmentRef.value.validate(async (valid: boolean) => {\r\n if(valid){\r\n dialogState.loading = true\r\n if(dialogState.title === '新增') {\r\n let res = await goodsAndEquipmentApi().addGoodsEquipment(dialogState.safetyGoodsAndEquipmentForm)\r\n if(res.data.code === '200'){\r\n dialogState.showSafetyGoodsAndEquipmentDialog = false\r\n emit('refreshData')\r\n ElMessage({\r\n type: 'success',\r\n message: '安全物资设备新增成功',\r\n duration: 2000\r\n });\r\n }else{\r\n ElMessage({\r\n type:'warning',\r\n message:res.data.msg\r\n })\r\n }\r\n }else{\r\n let res = await goodsAndEquipmentApi().updateGoodsEquipment(dialogState.safetyGoodsAndEquipmentForm)\r\n if(res.data.code === '200'){\r\n dialogState.showSafetyGoodsAndEquipmentDialog = false\r\n emit('refreshData')\r\n ElMessage({\r\n type: 'success',\r\n message: '安全物资设备编辑成功',\r\n duration: 2000\r\n });\r\n }else{\r\n ElMessage({\r\n type:'warning',\r\n message:res.data.msg\r\n })\r\n }\r\n }\r\n dialogState.loading = false\r\n }else{\r\n ElMessage({\r\n type: 'warning',\r\n message: '请完善基本信息'\r\n })\r\n }\r\n })\r\n};\r\n\r\nconst getAllSafetyEquipmentList = async () => {\r\n let res = await goodsAndEquipmentApi().getAllSafetyEquipment();\r\n if(res.data.code === '200'){\r\n dialogState.goodsBigClassifyList = res.data.data\r\n }else{\r\n ElMessage({\r\n message:res.data.msg,\r\n type:'warning'\r\n })\r\n }\r\n};\r\n\r\nconst emit = defineEmits(['refreshData',])\r\n\r\ndefineExpose({\r\n openSafetyGoodsAndEquipmentDialog,\r\n});\r\n\r\n</script>\r\n\r\n<style scoped>\r\n.input-length{\r\n width: 100% !important;\r\n}\r\n</style>\r\n |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP |
| | | <+>UTF-8 |
| | | =================================================================== |
| | | diff --git a/src/views/facilityManagement/safetyGoodsAndEquipment/components/safetyGoodsAndEquipmentDialog.vue b/src/views/facilityManagement/safetyGoodsAndEquipment/components/safetyGoodsAndEquipmentDialog.vue |
| | | --- a/src/views/facilityManagement/safetyGoodsAndEquipment/components/safetyGoodsAndEquipmentDialog.vue (revision da7a467fd8c4a82769ff275e21c1f2f45027b351) |
| | | +++ b/src/views/facilityManagement/safetyGoodsAndEquipment/components/safetyGoodsAndEquipmentDialog.vue (date 1677135681669) |
| | | @@ -161,7 +161,7 @@ |
| | | const changeSmallClassify = (id: number | null) => { |
| | | dialogState.safetyGoodsAndEquipmentForm.smallClassifyId = null; |
| | | dialogState.goodsSmallClassifyList = dialogState.goodsBigClassifyList[dialogState.goodsBigClassifyList. |
| | | - findIndex(item => item.id === (dialogState.safetyGoodsAndEquipmentForm.bigClassifyId || id))].childList as Array<BigClassifyType>; |
| | | + findIndex(item => item.id === (dialogState.safetyGoodsAndEquipmentForm.bigClassifyId ?? id))].childList as Array<BigClassifyType>; |
| | | } |
| | | |
| | | const submitSafetyGoodsAndEquipment = () => { |
| | | Index: src/views/facilityManagement/goodsDetailManage/components/goodsDetailAdd.vue |
| | | IDEA additional info: |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |
| | | <+><template>\r\n <div class=\"system-add-menu-container\">\r\n <el-dialog :title=\"goodsDetailAddState.title\" :close-on-click-modal=\"false\" v-model=\"goodsDetailAddState.goodsDetailAddVisible\" width=\"30%\">\r\n <el-form\r\n :model=\"goodsDetailAddState.goodsDetailForm\"\r\n :rules=\"goodsDetailAddState.goodsDetailRules\"\r\n ref=\"goodsDetailFormRef\"\r\n size=\"default\"\r\n v-loading=\"goodsDetailAddState.loading\"\r\n element-loading-text=\"Loading...\"\r\n label-width=\"120px\">\r\n <el-row>\r\n <el-col :span=\"24\" class=\"mb20\">\r\n <el-form-item label=\"选择物资\" prop=\"smId\">\r\n <el-row :gutter=\"6\">\r\n<!-- <el-col :span=\"8\">-->\r\n<!-- <el-select-->\r\n<!-- filterable-->\r\n<!-- placeholder=\"请选择部门\"-->\r\n<!-- clearable-->\r\n<!-- @change=\"changeDepartment\"-->\r\n<!-- v-model=\"goodsDetailAddState.depId\">-->\r\n<!-- <el-option-->\r\n<!-- v-for=\"item in goodsDetailAddState.departmentList\"-->\r\n<!-- :key=\"item.depId\"-->\r\n<!-- :value=\"item.depId\"-->\r\n<!-- :label=\"item.depName\"-->\r\n<!-- ></el-option>-->\r\n<!-- </el-select>-->\r\n<!-- </el-col>-->\r\n <el-col :span=\"12\">\r\n <el-select v-model=\"goodsDetailAddState.classifyId\" placeholder=\"选择分类\" @change=\"changeClassify\" filterable clearable>\r\n <el-option\r\n v-for=\"item in goodsDetailAddState.classifyList\"\r\n :key=\"item.materialClassifyId\"\r\n :value=\"item.materialClassifyId\"\r\n :label=\"item.materialClassifyName\"\r\n ></el-option>\r\n </el-select>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-select v-model=\"goodsDetailAddState.goodsDetailForm.smId\" placeholder=\"选择物资\" filterable clearable>\r\n <el-option\r\n v-for=\"item in goodsDetailAddState.goodsList\"\r\n :key=\"item.smId\"\r\n :value=\"item.smId\"\r\n :label=\"item.materialName\"\r\n ></el-option>\r\n </el-select>\r\n </el-col>\r\n </el-row>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"24\" class=\"mb20\">\r\n <el-row :gutter=\"6\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"RFID起:\" prop=\"startRfid\">\r\n <el-input v-model=\"goodsDetailAddState.RFID\" placeholder=\"选填\">\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-input v-model=\"goodsDetailAddState.startRfid\" @blur=\"checkLength('start')\" @input=\"onVerifiyNumberInteger($event, 'start')\" placeholder=\"选填\">\r\n </el-input>\r\n </el-col>\r\n </el-row>\r\n </el-col>\r\n <el-col :span=\"24\" class=\"mb20\">\r\n <el-row :gutter=\"6\">\r\n <el-col :span=\"12\">\r\n <el-form-item label=\"RFID止:\" prop=\"endRfid\">\r\n <el-input v-model=\"goodsDetailAddState.RFID\" placeholder=\"选填\">\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"12\">\r\n <el-input @blur=\"checkLength('end')\" @input=\"onVerifiyNumberInteger($event, 'end')\" v-model=\"goodsDetailAddState.endRfid\" placeholder=\"选填\">\r\n </el-input>\r\n </el-col>\r\n </el-row>\r\n </el-col>\r\n <el-col :span=\"24\" class=\"mb20\">\r\n <el-form-item label=\"入库数量:\" prop=\"wareHousingCount\">\r\n <el-input @input=\"onVerifiyNumberInteger($event, 'wareHousingCount')\" v-model=\"goodsDetailAddState.goodsDetailForm.wareHousingCount\" placeholder=\"入库总数\">\r\n </el-input>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"24\" class=\"mb20\">\r\n <el-form-item label=\"有效期类型:\" prop=\"validType\">\r\n <el-radio-group v-model=\"goodsDetailAddState.goodsDetailForm.validType\">\r\n <el-radio :label=\"0\">长期</el-radio>\r\n <el-radio :label=\"1\">非长期</el-radio>\r\n </el-radio-group>\r\n </el-form-item>\r\n </el-col>\r\n <el-col :span=\"24\" class=\"mb20\" v-if=\"goodsDetailAddState.goodsDetailForm.validType === 1\">\r\n <el-form-item label=\"有效期至:\" prop=\"validTime\">\r\n <el-date-picker\r\n v-model=\"goodsDetailAddState.goodsDetailForm.validTime\"\r\n type=\"datetime\"\r\n format=\"YYYY-MM-DD HH:mm:ss\"\r\n value-format=\"YYYY-MM-DD HH:mm:ss\"\r\n placeholder=\"选择日期时间\"\r\n style=\"width: 100%\" />\r\n </el-form-item>\r\n </el-col>\r\n\r\n </el-row>\r\n </el-form>\r\n <template #footer>\r\n <span class=\"dialog-footer\">\r\n <el-button @click=\"goodsDetailAddState.goodsDetailAddVisible = !goodsDetailAddState.goodsDetailAddVisible\" size=\"default\">取 消</el-button>\r\n <el-button type=\"primary\" @click=\"submitGoodsDetail\" v-throttle size=\"default\">确 定</el-button>\r\n </span>\r\n </template>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport {reactive, ref, watch} from 'vue'\r\nimport {\r\n BaseMaterialListType,\r\n ClassificationListType,\r\n DepartmentType,\r\n GoodsDetailDataType,\r\n GoodsDetailAddType\r\n} from \"/@/views/facilityManagement/goodsDetailManage/index\";\r\nimport {isValidKey} from \"/@/views/facilityManagement/safetyGoodsAndEquipment/index\";\r\nimport {ElMessage} from \"element-plus/es\";\r\nimport {goodsDetailApi} from \"/@/api/facilityManagement/goodsDetailManage\";\r\nimport {verifiyNumberInteger, verifyString} from \"/@/utils/toolsValidate\";\r\nimport {useUserInfo} from \"/@/stores/userInfo\";\r\n\r\nconst goodsDetailFormRef = ref()\r\nconst userInfo = useUserInfo()\r\n\r\nconst goodsDetailAddState = reactive<GoodsDetailAddType>({\r\n title: '新增入库',\r\n RFID: 'RFIDXXX',\r\n startRfid: '',\r\n endRfid: '',\r\n depId: null,\r\n loading: false,\r\n classifyId: null,\r\n goodsDetailAddVisible: false,\r\n goodsDetailForm: {\r\n id: null,\r\n smId: null,\r\n validType: null,\r\n validTime: null,\r\n startRfid: null,\r\n endRfid: null ,\r\n wareHousingCount: null,\r\n },\r\n goodsDetailRules: {\r\n smId: [{ required: true, message: '请选择物资名称', trigger: 'change' }],\r\n validType: [{ required: true, message: '请选择时间类型', trigger: 'change' }],\r\n validTime: [{ required: true, message: '请选择有效时间', trigger: 'change' }],\r\n wareHousingCount: [{ required: true, message: '请填写入库数量', trigger: 'blur' }],\r\n },\r\n departmentList: [],\r\n classifyList: [],\r\n goodsList: [],\r\n})\r\n\r\nwatch(() => [goodsDetailAddState.startRfid,goodsDetailAddState.endRfid],(newVal, oldVal) => {\r\n if(goodsDetailAddState.startRfid.length === 8 && goodsDetailAddState.endRfid.length === 8){\r\n goodsDetailAddState.goodsDetailForm.wareHousingCount = Number(goodsDetailAddState.endRfid) - Number(goodsDetailAddState.startRfid) + 1\r\n }\r\n},{immediate :false});\r\n\r\nconst openGoodsDetailAddDialog = async (title: string, value: GoodsDetailDataType, departmentList: DepartmentType []) => {\r\n goodsDetailAddState.goodsDetailAddVisible = true;\r\n goodsDetailAddState.departmentList = departmentList;\r\n setTimeout(() => {\r\n goodsDetailFormRef.value.clearValidate();\r\n });\r\n goodsDetailAddState.startRfid = '';\r\n goodsDetailAddState.endRfid = '';\r\n goodsDetailAddState.goodsDetailForm = {\r\n id: null,\r\n smId: null,\r\n validType: null,\r\n validTime: null,\r\n startRfid: null,\r\n endRfid: null ,\r\n wareHousingCount: null,\r\n };\r\n goodsDetailAddState.classifyList = goodsDetailAddState.departmentList.find(item => item.depId === userInfo.userInfos.depId)?.classificationList as Array<ClassificationListType>\r\n}\r\n\r\n// const changeDepartment = (value: number | null) => {\r\n// goodsDetailAddState.classifyId = null\r\n// goodsDetailAddState.goodsDetailForm.smId = null\r\n// goodsDetailAddState.classifyList = goodsDetailAddState.departmentList.find(item => item.depId === value)?.classificationList as Array<ClassificationListType>\r\n// }\r\n\r\nconst changeClassify = (value: number | null) => {\r\n debugger\r\n goodsDetailAddState.goodsDetailForm.smId = null\r\n goodsDetailAddState.goodsList = JSON.parse(JSON.stringify(\r\n (goodsDetailAddState.classifyList.find(item => item.materialClassifyId === value) ?? {baseMaterialList:[]})?.baseMaterialList as Array<BaseMaterialListType>\r\n ))\r\n}\r\n\r\nconst submitGoodsDetail = () => {\r\n goodsDetailFormRef.value.validate(async (valid: boolean) => {\r\n if(valid){\r\n goodsDetailAddState.goodsDetailForm.startRfid = `RFID${goodsDetailAddState.startRfid}`\r\n goodsDetailAddState.goodsDetailForm.endRfid = `RFID${goodsDetailAddState.endRfid}`\r\n goodsDetailAddState.loading = true\r\n let res = await goodsDetailApi().addGoodsDetail(goodsDetailAddState.goodsDetailForm)\r\n if(res.data.code === '200'){\r\n goodsDetailAddState.goodsDetailAddVisible = false\r\n emit('refreshData')\r\n ElMessage({\r\n type: 'success',\r\n message: '物资新增成功',\r\n duration: 2000\r\n });\r\n }else{\r\n ElMessage({\r\n type:'warning',\r\n message:res.data.msg\r\n })\r\n }\r\n goodsDetailAddState.loading = false\r\n }else{\r\n ElMessage({\r\n type: 'warning',\r\n message: '请完善基本信息'\r\n })\r\n }\r\n })\r\n}\r\n\r\nconst checkLength = (value: string) => {\r\n if(value === 'start' && goodsDetailAddState.startRfid.length !== 8){\r\n ElMessage({\r\n type:'warning',\r\n message: 'RFID起不符合规范,请重新填入'\r\n })\r\n goodsDetailAddState.startRfid = ''\r\n goodsDetailAddState.goodsDetailForm.wareHousingCount = null\r\n }else if(value === 'end' && goodsDetailAddState.endRfid.length !== 8){\r\n ElMessage({\r\n type:'warning',\r\n message: 'RFID止不符合规范,请重新填入'\r\n })\r\n goodsDetailAddState.endRfid = ''\r\n goodsDetailAddState.goodsDetailForm.wareHousingCount = null\r\n }else{\r\n return\r\n }\r\n}\r\n\r\nconst onVerifiyNumberInteger = (val: number, title: string) => {\r\n if(title === 'wareHousingCount'){\r\n goodsDetailAddState.goodsDetailForm.wareHousingCount = Number(verifiyNumberInteger(val.toString())) === 0 ? null : Number(verifiyNumberInteger(val.toString()));\r\n }else if(title === 'start'){\r\n goodsDetailAddState.startRfid = verifyString(val.toString());\r\n }else{\r\n goodsDetailAddState.endRfid = verifyString(val.toString());\r\n }\r\n\r\n};\r\n\r\nconst emit = defineEmits(['refreshData',])\r\n\r\ndefineExpose({\r\n openGoodsDetailAddDialog\r\n})\r\n\r\n</script>\r\n\r\n<style scoped>\r\n\r\n</style>\r\n |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP |
| | | <+>UTF-8 |
| | | =================================================================== |
| | | diff --git a/src/views/facilityManagement/goodsDetailManage/components/goodsDetailAdd.vue b/src/views/facilityManagement/goodsDetailManage/components/goodsDetailAdd.vue |
| | | --- a/src/views/facilityManagement/goodsDetailManage/components/goodsDetailAdd.vue (revision da7a467fd8c4a82769ff275e21c1f2f45027b351) |
| | | +++ b/src/views/facilityManagement/goodsDetailManage/components/goodsDetailAdd.vue (date 1673943642886) |
| | | @@ -197,7 +197,6 @@ |
| | | // } |
| | | |
| | | const changeClassify = (value: number | null) => { |
| | | - debugger |
| | | goodsDetailAddState.goodsDetailForm.smId = null |
| | | goodsDetailAddState.goodsList = JSON.parse(JSON.stringify( |
| | | (goodsDetailAddState.classifyList.find(item => item.materialClassifyId === value) ?? {baseMaterialList:[]})?.baseMaterialList as Array<BaseMaterialListType> |
| | | Index: src/api/facilityManagement/claimReturnRecords/index.ts |
| | | IDEA additional info: |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.BaseRevisionTextPatchEP |
| | | <+>import request from \"/@/utils/request\";\r\n\r\nexport function claimReturnRecordsApi() {\r\n\treturn {\r\n\t\tgetClaimReturnRecords: (data: {}) => {\r\n\t\t\treturn request({\r\n\t\t\t\turl: import.meta.env.VITE_API_URL_OUT + `/equipment/material/record/page/list`,\r\n\t\t\t\tmethod: 'post',\r\n\t\t\t\tdata\r\n\t\t\t});\r\n\t\t},\r\n\t\treturnGoods: (data: {}) => {\r\n\t\t\treturn request({\r\n\t\t\t\turl: import.meta.env.VITE_API_URL_OUT + `/equipment/material/record/revert`,\r\n\t\t\t\tmethod: 'post',\r\n\t\t\t\tdata\r\n\t\t\t});\r\n\t\t},\r\n\t\trefreshReturnAndNoReturn: (data: {}) => {\r\n\t\t\treturn request({\r\n\t\t\t\turl: import.meta.env.VITE_API_URL_OUT + `/equipment/material/record/queryById`,\r\n\t\t\t\tmethod: 'post',\r\n\t\t\t\tdata\r\n\t\t\t});\r\n\t\t},\r\n\t}\r\n}\r\n |
| | | Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP |
| | | <+>UTF-8 |
| | | =================================================================== |
| | | diff --git a/src/api/facilityManagement/claimReturnRecords/index.ts b/src/api/facilityManagement/claimReturnRecords/index.ts |
| | | --- a/src/api/facilityManagement/claimReturnRecords/index.ts (revision da7a467fd8c4a82769ff275e21c1f2f45027b351) |
| | | +++ b/src/api/facilityManagement/claimReturnRecords/index.ts (date 1675758450864) |
| | | @@ -11,7 +11,7 @@ |
| | | }, |
| | | returnGoods: (data: {}) => { |
| | | return request({ |
| | | - url: import.meta.env.VITE_API_URL_OUT + `/equipment/material/record/revert`, |
| | | + url: import.meta.env.VITE_API_URL_OUT + `/equipment/material/record/revert?a=${123}&b=${true}`, |
| | | method: 'post', |
| | | data |
| | | }); |
对比新文件 |
| | |
| | | <changelist name="Uncommitted_changes_before_Update_at_2023_3_3_13_33_[Default_Changelist]" date="1677821594869" recycled="true" deleted="true"> |
| | | <option name="PATH" value="$PROJECT_DIR$/.idea/shelf/Uncommitted_changes_before_Update_at_2023_3_3_13_33_[Default_Changelist]/shelved.patch" /> |
| | | <option name="DESCRIPTION" value="Uncommitted changes before Update at 2023/3/3 13:33 [Default Changelist]" /> |
| | | </changelist> |
| | |
| | | }, |
| | | returnGoods: (data: {}) => { |
| | | return request({ |
| | | url: import.meta.env.VITE_API_URL_OUT + `/equipment/material/record/revert`, |
| | | url: import.meta.env.VITE_API_URL_OUT + `/equipment/material/record/revert?a=${123}&b=${true}`, |
| | | method: 'post', |
| | | data |
| | | }); |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | |
| | | const handleSelectionChange = (val: materialType []) => { |
| | | returnAndWatchState.returnFormList.materialList = val.map((item: materialType) => { |
| | |
| | | |
| | | const filterMaterialStatus = (value: number) => { |
| | | return returnAndWatchState.reasonList.find(item => item.id === value)?.name |
| | | } |
| | | }; |
| | | |
| | | const emit = defineEmits(['refreshReturnData']); |
| | | |
| | |
| | | // } |
| | | |
| | | const changeClassify = (value: number | null) => { |
| | | debugger |
| | | goodsDetailAddState.goodsDetailForm.smId = null |
| | | goodsDetailAddState.goodsList = JSON.parse(JSON.stringify( |
| | | (goodsDetailAddState.classifyList.find(item => item.materialClassifyId === value) ?? {baseMaterialList:[]})?.baseMaterialList as Array<BaseMaterialListType> |
| | |
| | | const changeSmallClassify = (id: number | null) => { |
| | | dialogState.safetyGoodsAndEquipmentForm.smallClassifyId = null; |
| | | dialogState.goodsSmallClassifyList = dialogState.goodsBigClassifyList[dialogState.goodsBigClassifyList. |
| | | findIndex(item => item.id === (dialogState.safetyGoodsAndEquipmentForm.bigClassifyId || id))].childList as Array<BigClassifyType>; |
| | | findIndex(item => item.id === (dialogState.safetyGoodsAndEquipmentForm.bigClassifyId ?? id))].childList as Array<BigClassifyType>; |
| | | } |
| | | |
| | | const submitSafetyGoodsAndEquipment = () => { |
| | |
| | | {id:1,name:'公司'}, |
| | | {id:2,name:'事业部'}, |
| | | {id:3,name:'车间'}, |
| | | {id:4,name:'班组'} |
| | | ] // 部门数据 |
| | | }); |
| | | |
| | |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | |
| | | <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> |
| | | <el-form-item label="用户类型" prop="type"> |
| | | <el-select v-model="userForm.type" placeholder="请选择" clearable class="w100"> |
| | | <el-option v-for="item in userTypeList.filter(item => userForm.type === 1 ? item.id === 1 : item.id !== 1)" :key="item.id" :label="item.name" :value="item.id"> </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">--> |
| | | <!-- <el-form-item label="用户状态">--> |
| | | <!-- <el-switch v-model="userForm.status" inline-prompt active-value = 1 inactive-value= 0 active-text="启" inactive-text="禁"></el-switch>--> |
| | |
| | | interface roleData {} |
| | | interface dutyData {} |
| | | interface sexData {} |
| | | interface type {} |
| | | interface UserState { |
| | | title: string; |
| | | disabled: boolean; |
| | |
| | | phone: string; |
| | | email: string; |
| | | gender: number | null; |
| | | type: number | null; |
| | | password: string; |
| | | expireTime: string; |
| | | status: number; |
| | |
| | | roleData: Array<roleData>; |
| | | dutyData: Array<dutyData>; |
| | | sexList: Array<sexData>; |
| | | userTypeList: Array<type>; |
| | | } |
| | | |
| | | export default defineComponent({ |
| | |
| | | gender: null, // 性别 |
| | | password: '', // 账户密码 |
| | | positionId: null, // 岗位 |
| | | type: null, // 用户类型 |
| | | expireTime: '', // 账户过期 |
| | | status: 1 // 用户状态 |
| | | }, |
| | |
| | | depId: [{ required: true, message: '请选择部门', trigger: 'change' }], |
| | | positionId: [{ required: true, message: '请选择职务', trigger: 'change' }], |
| | | phone: [{ required: true, message: '请填写手机号', trigger: 'blur' }], |
| | | type: [{ required: true, message: '请填写用户类型', trigger: 'blur' }], |
| | | gender: [{ required: true, message: '请选择性别', trigger: 'change' }], |
| | | expireTime: [{ required: true, message: '请输入账户过期时间', trigger: 'blur' }], |
| | | password: [{ required: true, message: '请输入账户密码', trigger: 'blur' }], |
| | |
| | | sexList: [ |
| | | { id: 1, name: '男' }, |
| | | { id: 0, name: '女' } |
| | | ], |
| | | userTypeList: [ |
| | | { id: 1, name: '超级管理员' }, |
| | | { id: 2, name: '管理员' }, |
| | | { id: 3, name: '普通员工' } |
| | | ] |
| | | }); |
| | | // 打开弹窗 |
| | |
| | | identify: '', |
| | | positionId: null, |
| | | gender: null, |
| | | type: null, |
| | | password: '', |
| | | expireTime: '', |
| | | status: 1 |
| | |
| | | {{ parseNumber(scope.row.positionId) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="职务" show-overflow-tooltip> |
| | | <template #default="scope"> |
| | | {{ `${userTypeList.find(item => item.id === scope.row.type)?.name}` }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="department.depName" label="部门" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="phone" label="手机号" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="email" label="邮箱" show-overflow-tooltip></el-table-column> |
| | |
| | | departmentList: []; |
| | | roleList: []; |
| | | dutyList: []; |
| | | userTypeList: Array<{id:number,name:string}>; |
| | | props:{} |
| | | } |
| | | |
| | |
| | | value: 'depId', |
| | | checkStrictly: true, |
| | | emitPath: false |
| | | } |
| | | }, |
| | | userTypeList: [ |
| | | { id: 1, name: '超级管理员' }, |
| | | { id: 2, name: '管理员' }, |
| | | { id: 3, name: '普通员工' } |
| | | ] |
| | | }); |
| | | // 初始化表格数据 |
| | | const initUserTableData = async () => { |