From 6c74bf912e251347714099a84585f825b32a1c08 Mon Sep 17 00:00:00 2001 From: zmc <zmc_li@foxmail.com> Date: 星期一, 18 十二月 2023 17:52:05 +0800 Subject: [PATCH] Merge branch 'feature-001' of ssh://114.215.109.124:29418/supervision-vue into feature-001 --- package-lock.json | 24 src/components/search-option/FYOptionTime.vue | 3 src/stores/loadingStore.js | 21 src/components.d.ts | 5 src/constants/index.js | 3 src/api/fytz/noticeApi.js | 32 - src/composables/formConfirm.js | 38 + src/views/fytz/user/UserInfo.vue | 73 ++-- src/constants/menu.js | 4 src/api/fysp/evaluateApi.js | 11 src/components/search-option/FYOptionLocation.vue | 36 +- src/components/search-option/FYOptionOnlineStatus.vue | 1 src/api/index.js | 23 src/api/fysp/sceneApi.js | 34 - src/views/baseinfo/fysp/scene/SceneInfo.vue | 2 src/api/fysp/taskApi.js | 30 - src/components/core/SiderMenu.vue | 2 src/views/fysp/evaluation/components/CompHistoryRecord.vue | 10 src/components/search-option/FYOptionScene.vue | 4 src/api/fytz/userApi.js | 25 src/views/fysp/evaluation/ResultManage.vue | 175 +++++++++ src/constants/envCreditCode.js | 26 + src/api/fysp/problemApi.js | 2 src/api/fysp/userApi.js | 12 src/components/form/FYForm.vue | 37 + src/views/fysp/evaluation/DataSource.vue | 22 + src/components/table/FYTable.vue | 56 +- src/components/search-option/FYOptionUserType.vue | 4 src/composables/messageBox.js | 2 package.json | 2 src/views/fysp/evaluation/components/CompPreCheck.vue | 171 +++------ src/views/fysp/evaluation/components/CompQuickSet.vue | 94 +++++ .prettierrc.json | 2 src/views/fytz/user/components/CompUserInfoAddDrawer.vue | 7 src/views/baseinfo/fysp/scene/CompSceneBaseInfo.vue | 16 35 files changed, 645 insertions(+), 364 deletions(-) diff --git a/.prettierrc.json b/.prettierrc.json index 66e2335..5eb97e4 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -1,6 +1,6 @@ { "$schema": "https://json.schemastore.org/prettierrc", - "semi": false, + "semi": true, "tabWidth": 2, "singleQuote": true, "printWidth": 100, diff --git a/package-lock.json b/package-lock.json index 19baa43..9407446 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,7 @@ "@vueuse/core": "^9.7.0", "axios": "^1.2.1", "dayjs": "^1.11.10", - "element-plus": "^2.2.26", + "element-plus": "^2.4.3", "pinia": "^2.0.26", "vue": "^3.2.45", "vue-router": "^4.1.6" @@ -1838,8 +1838,9 @@ } }, "node_modules/@element-plus/icons-vue": { - "version": "2.0.10", - "license": "MIT", + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", + "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==", "peerDependencies": { "vue": "^3.2.0" } @@ -3729,11 +3730,12 @@ "license": "ISC" }, "node_modules/element-plus": { - "version": "2.2.26", - "license": "MIT", + "version": "2.4.3", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.4.3.tgz", + "integrity": "sha512-b3q26j+lM4SBqiyzw8HybybGnP2pk4MWgrnzzzYW5qKQUgV6EG1Zg7nMCfgCVccI8tNvZoTiUHb2mFaiB9qT8w==", "dependencies": { "@ctrl/tinycolor": "^3.4.1", - "@element-plus/icons-vue": "^2.0.6", + "@element-plus/icons-vue": "^2.3.1", "@floating-ui/dom": "^1.0.1", "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", "@types/lodash": "^4.14.182", @@ -8693,7 +8695,9 @@ } }, "@element-plus/icons-vue": { - "version": "2.0.10", + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/@element-plus/icons-vue/-/icons-vue-2.3.1.tgz", + "integrity": "sha512-XxVUZv48RZAd87ucGS48jPf6pKu0yV5UCg9f4FFwtrYxXOwWuVJo6wOvSLKEoMQKjv8GsX/mhP6UsC1lRwbUWg==", "requires": {} }, "@eslint-community/eslint-utils": { @@ -9942,10 +9946,12 @@ "dev": true }, "element-plus": { - "version": "2.2.26", + "version": "2.4.3", + "resolved": "https://registry.npmmirror.com/element-plus/-/element-plus-2.4.3.tgz", + "integrity": "sha512-b3q26j+lM4SBqiyzw8HybybGnP2pk4MWgrnzzzYW5qKQUgV6EG1Zg7nMCfgCVccI8tNvZoTiUHb2mFaiB9qT8w==", "requires": { "@ctrl/tinycolor": "^3.4.1", - "@element-plus/icons-vue": "^2.0.6", + "@element-plus/icons-vue": "^2.3.1", "@floating-ui/dom": "^1.0.1", "@popperjs/core": "npm:@sxzz/popperjs-es@^2.11.7", "@types/lodash": "^4.14.182", diff --git a/package.json b/package.json index 647b599..50001b6 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@vueuse/core": "^9.7.0", "axios": "^1.2.1", "dayjs": "^1.11.10", - "element-plus": "^2.2.26", + "element-plus": "^2.4.3", "pinia": "^2.0.26", "vue": "^3.2.45", "vue-router": "^4.1.6" diff --git a/src/api/fysp/evaluateApi.js b/src/api/fysp/evaluateApi.js new file mode 100644 index 0000000..7e61e1f --- /dev/null +++ b/src/api/fysp/evaluateApi.js @@ -0,0 +1,11 @@ +import { $fysp } from '../index'; + +export default { + + /** + * 鑾峰彇鑷姩璇勪及鍘嗗彶璁板綍 + */ + fetchAutoEvaluation(param){ + return $fysp.post(`evaluation/auto/record`, param); + } +}; diff --git a/src/api/fysp/problemApi.js b/src/api/fysp/problemApi.js index 5bb2b72..ce2ba9b 100644 --- a/src/api/fysp/problemApi.js +++ b/src/api/fysp/problemApi.js @@ -10,6 +10,6 @@ */ checkProblem({ pId, action, remark = '', userId = id, userName = name }) { const params = `?pId=${pId}&action=${action}&remark=${remark}&userId=${userId}&userName=${userName}`; - return $fysp.post(`problemlist/check${params}`).then((res) => res.data); + return $fysp.post(`problemlist/check${params}`); }, }; diff --git a/src/api/fysp/sceneApi.js b/src/api/fysp/sceneApi.js index d17004d..be95402 100644 --- a/src/api/fysp/sceneApi.js +++ b/src/api/fysp/sceneApi.js @@ -7,7 +7,7 @@ */ searchScene(area, page = 1, perPage = 20) { const params = `page=${page}&per_page=${perPage}`; - return $fysp.post(`scense/find?${params}`, area).then((res) => res.data); + return $fysp.post(`scense/find?${params}`, area); }, /** @@ -16,13 +16,11 @@ * @returns 鍦烘櫙璇︽儏 */ getSceneDetail(sId) { - return $fysp - .get(`scense/detail`, { - params: { - sceneId: sId, - }, - }) - .then((res) => res.data); + return $fysp.get(`scense/detail`, { + params: { + sceneId: sId + } + }); }, /** @@ -33,29 +31,23 @@ const rb = { scense: scene ? scene : null, subScene: subScene ? JSON.stringify(subScene) : null, - sceneDevice: sceneDevice ? sceneDevice : null, + sceneDevice: sceneDevice ? sceneDevice : null }; - return $fysp - .post(`scense/detail/update?${params}`, rb) - .then((res) => res.data); + return $fysp.post(`scense/detail/update?${params}`, rb); }, /** * 鏇存柊鍦烘櫙棰濆淇℃伅 */ updateSubScene(typeId, subScene) { - return this.updateSceneDetail(typeId, { subScene: subScene }).then( - (res) => res.data - ); + return this.updateSceneDetail(typeId, { subScene: subScene }); }, /** * 鏇存柊鍦烘櫙璁惧淇℃伅 */ updateSceneDevice(typeId, sceneDevice) { - return this.updateSceneDetail(typeId, { sceneDevice: sceneDevice }).then( - (res) => res.data - ); + return this.updateSceneDetail(typeId, { sceneDevice: sceneDevice }); }, /** @@ -63,7 +55,7 @@ * @param {Object} scene */ createScene(scene) { - return $fysp.put('scense', scene).then((res) => res.data); + return $fysp.put('scense', scene); }, /** @@ -71,6 +63,6 @@ * @param {Object} scene */ updateScene(scene) { - return $fysp.post('scense', scene).then((res) => res.data); - }, + return $fysp.post('scense', scene); + } }; diff --git a/src/api/fysp/taskApi.js b/src/api/fysp/taskApi.js index 787e520..1d6a3d8 100644 --- a/src/api/fysp/taskApi.js +++ b/src/api/fysp/taskApi.js @@ -5,33 +5,29 @@ * 鑾峰彇椤跺眰浠诲姟 */ getTopTask() { - return $fysp.get('task/alltask/0').then((res) => res.data); + return $fysp.get('task/alltask/0'); }, /** * 鑾峰彇瀛愪换鍔$粺璁′俊鎭� */ getSubtaskSummary({ topTaskId = undefined, sceneTypeId = undefined }) { - return $fysp - .get('subtask/summary', { - params: { - topTaskId: topTaskId, - sceneTypeId: sceneTypeId, - }, - }) - .then((res) => res.data); + return $fysp.get('subtask/summary', { + params: { + topTaskId: topTaskId, + sceneTypeId: sceneTypeId + } + }); }, /** * 鑾峰彇瀛愪换鍔¢棶棰樿鎯� */ getProBySubtask(id) { - return $fysp - .get('problemlist/subtask', { - params: { - stGuid: id, - }, - }) - .then((res) => res.data); - }, + return $fysp.get('problemlist/subtask', { + params: { + stGuid: id + } + }); + } }; diff --git a/src/api/fysp/userApi.js b/src/api/fysp/userApi.js index 838d799..758b4c2 100644 --- a/src/api/fysp/userApi.js +++ b/src/api/fysp/userApi.js @@ -5,29 +5,27 @@ * 鑾峰彇鐢ㄦ埛璇︽儏 */ getUserById(id) { - return $fysp.get(`userinfo/${id}`).then((res) => res.data); + return $fysp.get(`userinfo/${id}`); }, /** * 鏇存柊鐢ㄦ埛璇︽儏 */ updateUser(user) { - return $fysp.post(`userinfo`, user).then((res) => res.data); + return $fysp.post(`userinfo`, user); }, /** * 鑾峰彇鍦烘櫙鐨勭敤鎴疯鎯� */ getUserByScene(sId) { - return $fysp - .get(`userinfo/scene/get?sceneId=${sId}`) - .then((res) => res.data); + return $fysp.get(`userinfo/scene/get?sceneId=${sId}`); }, /** * 鑷姩鍒涘缓璐︽埛 */ autoCreateAccount(sId) { - return $fysp.post(`userinfo/create?sceneId=${sId}`).then((res) => res.data); - }, + return $fysp.post(`userinfo/create?sceneId=${sId}`); + } }; diff --git a/src/api/fytz/noticeApi.js b/src/api/fytz/noticeApi.js index 175bd98..1a341d7 100644 --- a/src/api/fytz/noticeApi.js +++ b/src/api/fytz/noticeApi.js @@ -9,27 +9,23 @@ */ getNoticeHistory({ type, subtype = null, page = 1, perPage = 20 }) { const params = `userId=${id}&page=${page}&per_page=${perPage}`; - return $fytz - .post(`notifications/history?${params}`, { - ecNoticetype: type, - ecNoticesubtype: subtype, - }) - .then((res) => res.data); + return $fytz.post(`notifications/history?${params}`, { + ecNoticetype: type, + ecNoticesubtype: subtype + }); }, /** * 鑾峰彇鐢ㄦ埛鏈閫氱煡 */ getNotification() { - return $fytz - .get('notifications', { - params: { - userId: id, - page: 1, - per_page: 30, - }, - }) - .then((res) => res.data); + return $fytz.get('notifications', { + params: { + userId: id, + page: 1, + per_page: 30 + } + }); }, /** @@ -66,8 +62,6 @@ releaseNotice(notice) { notice.authorId = id; notice.authorName = name; - return $fytz - .post(`notifications/${id}/release2`, notice) - .then((res) => res.data); - }, + return $fytz.post(`notifications/${id}/release2`, notice); + } }; diff --git a/src/api/fytz/userApi.js b/src/api/fytz/userApi.js index bc326d3..8a252c0 100644 --- a/src/api/fytz/userApi.js +++ b/src/api/fytz/userApi.js @@ -11,7 +11,7 @@ */ fetchUser(page = 1, per_page = 20, data) { const params = `page=${page}&per_page=${per_page}`; - return $fytz.post(`baseInfo/search/?${params}`, data).then((res) => res.data); + return $fytz.post(`baseInfo/search/?${params}`, data); }, /** @@ -20,26 +20,31 @@ * @returns */ fetchUserBaseInfo(userId) { - return $fytz - .get(`userInfo/baseInfo?userId=${userId}`) - .then((res) => res.data); + return $fytz.get(`userInfo/baseInfo?userId=${userId}`); }, /** * 鏇存柊鐢ㄦ埛璐︽埛淇℃伅 - * @param {*} data - * @returns + * @param {*} data + * @returns */ updateUserInfo(data) { - return $fytz.post('userInfo', data).then((res) => res.data); + return $fytz.post('userInfo', data); }, /** * 鏂板鐢ㄦ埛 - * @param {*} data - * @returns + * @param {*} data + * @returns */ createUser(data) { - return $fytz.put('userInfo', data).then((res) => res.data); + return $fytz.put('userInfo/create', data); + }, + + /** + * 閲嶇疆鐢ㄦ埛瀵嗙爜 + */ + resetPassword(id) { + return $fytz.post(`userInfo/resetPw?userId=${id}`); } }; diff --git a/src/api/index.js b/src/api/index.js index f21aba3..cbff2ca 100644 --- a/src/api/index.js +++ b/src/api/index.js @@ -9,7 +9,7 @@ let ip2_file = 'https://fyami.com.cn/'; if (debug) { - // ip1 = 'http://192.168.0.123:8082/'; + ip1 = 'http://192.168.0.138:8082/'; // ip1_file = 'http://47.100.191.150:9005/'; ip2 = 'http://192.168.0.138:8080/'; // ip2_file = 'https://fyami.com.cn/'; @@ -20,7 +20,7 @@ //椋炵窘鐩戠 const $fysp = axios.create({ baseURL: ip1, - timeout: 10000, + timeout: 10000 }); $fysp.imgUrl = `${ip1_file}images/`; $fysp.downloadUrl = `${ip1_file}files/`; @@ -28,7 +28,7 @@ //椋炵窘鐜 const $fytz = axios.create({ baseURL: ip2, - timeout: 10000, + timeout: 10000 }); $fytz.imgUrl = `${ip2_file}images/`; @@ -51,7 +51,7 @@ console.log(error); ElMessage({ message: error, - type: 'error', + type: 'error' }); return Promise.reject(error); } @@ -65,17 +65,18 @@ console.log(response); console.log('==>璇锋眰缁撴潫'); if (response.status == 200) { - if ( - response.data.success != undefined && - response.data.success != null - ) { + if (response.data.success != undefined && response.data.success != null) { if (response.data.success == true) { - return response; + return response.data; } else { + ElMessage({ + message: response.data.message, + type: 'error' + }); return Promise.reject(response.data.message); } } else { - return response; + return response.data; } } else { return Promise.reject(response); @@ -88,7 +89,7 @@ console.log('==>璇锋眰缁撴潫'); ElMessage({ message: error, - type: 'error', + type: 'error' }); return Promise.reject(error); } diff --git a/src/components.d.ts b/src/components.d.ts index b1cd8a8..bdad972 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -10,7 +10,6 @@ BaseContentLayout: typeof import('./components/core/BaseContentLayout.vue')['default'] BasePanelLayout: typeof import('./components/core/BasePanelLayout.vue')['default'] Content: typeof import('./components/core/Content.vue')['default'] - copy: typeof import('./components/search-option/FYOptionScene copy.vue')['default'] ElAside: typeof import('element-plus/es')['ElAside'] ElAvatar: typeof import('element-plus/es')['ElAvatar'] ElBacktop: typeof import('element-plus/es')['ElBacktop'] @@ -22,7 +21,6 @@ ElCol: typeof import('element-plus/es')['ElCol'] ElConfigProvider: typeof import('element-plus/es')['ElConfigProvider'] ElContainer: typeof import('element-plus/es')['ElContainer'] - ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] ElDescriptions: typeof import('element-plus/es')['ElDescriptions'] ElDescriptionsItem: typeof import('element-plus/es')['ElDescriptionsItem'] ElDivider: typeof import('element-plus/es')['ElDivider'] @@ -34,7 +32,6 @@ ElIcon: typeof import('element-plus/es')['ElIcon'] ElImage: typeof import('element-plus/es')['ElImage'] ElInput: typeof import('element-plus/es')['ElInput'] - ElInputNumber: typeof import('element-plus/es')['ElInputNumber'] ElMain: typeof import('element-plus/es')['ElMain'] ElMenu: typeof import('element-plus/es')['ElMenu'] ElMenuItem: typeof import('element-plus/es')['ElMenuItem'] @@ -57,7 +54,6 @@ ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] ElTooltip: typeof import('element-plus/es')['ElTooltip'] - ElTransfer: typeof import('element-plus/es')['ElTransfer'] ElTree: typeof import('element-plus/es')['ElTree'] Footer: typeof import('./components/core/Footer.vue')['default'] FormCol: typeof import('./components/layout/FormCol.vue')['default'] @@ -72,7 +68,6 @@ FYTable: typeof import('./components/table/FYTable.vue')['default'] Header: typeof import('./components/core/Header.vue')['default'] MenuItems: typeof import('./components/core/MenuItems.vue')['default'] - ProblemCard: typeof import('./components/ProblemCard.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] SearchBar: typeof import('./components/SearchBar.vue')['default'] diff --git a/src/components/core/SiderMenu.vue b/src/components/core/SiderMenu.vue index 1cbb4b5..d4541a2 100644 --- a/src/components/core/SiderMenu.vue +++ b/src/components/core/SiderMenu.vue @@ -60,7 +60,7 @@ </template> <script> -import { MENU_FYSP, MENU_FYTZ, MENU_FYPW } from '../../constants/index' +import { MENU_FYSP, MENU_FYTZ, MENU_FYPW } from '@/constants/index' export default { name: 'CoreSiderMenu', diff --git a/src/components/form/FYForm.vue b/src/components/form/FYForm.vue index 7509183..42cf198 100644 --- a/src/components/form/FYForm.vue +++ b/src/components/form/FYForm.vue @@ -1,4 +1,3 @@ -<!-- 鍦烘櫙鍩烘湰淇℃伅缂栬緫 --> <template> <el-form :inline="false" @@ -9,16 +8,12 @@ label-width="150px" > <slot name="form-item" :formObj="formObj"></slot> - <el-form-item> - <el-button - :disabled="!edit" - type="primary" - @click="onSubmit" - :loading="loading" + <el-form-item v-if="showButtons"> + <el-button :disabled="!edit" type="primary" @click="onSubmit" :loading="loading" >鎻愪氦</el-button > - <el-button :disabled="!edit" @click="onReset">閲嶇疆</el-button> - <el-button v-if="enableCancelBtn" @click="onCancel">鍙栨秷</el-button> + <el-button v-if="useReset" :disabled="!edit" @click="onReset">閲嶇疆</el-button> + <el-button v-if="useCancel" @click="onCancel">鍙栨秷</el-button> </el-form-item> </el-form> </template> @@ -39,25 +34,31 @@ formInfo: Object, //琛ㄥ崟妫�楠岃鍒� rules: Object, + showButtons: { + type: Boolean, + default: true + }, //鍙栨秷鎸夐挳鏄惁鍙敤 - enableCancelBtn: Boolean, + useCancel: Boolean, + //閲嶇疆鎸夐挳鏄惁鍙敤 + useReset: Boolean, //瑙﹀彂閲嶇疆 reset: Boolean, //閫氱煡缂栬緫鐘舵�� - isEdit: Boolean, + isEdit: Boolean }); //瑙﹀彂鍑芥暟锛屾彁浜ゅ拰鍙栨秷 const emit = defineEmits(['submit', 'cancel', 'update:isEdit']); //琛ㄥ崟鎿嶄綔鍑芥暟 -const { formObj, formRef, edit, onSubmit, onCancel, onReset } = useFormConfirm({ +const { formObj, formRef, edit, onSubmit, onCancel, onReset, formProps } = useFormConfirm({ submit: { - do: submit, + do: submit }, cancel: { - do: cancel, - }, + do: cancel + } }); //鍔犺浇鐘舵�� @@ -70,6 +71,9 @@ emit('submit', formObj, () => { loading.value = false; resolve(); + },(err)=>{ + loading.value = false; + reject(err); }); }); } @@ -84,7 +88,8 @@ () => props.formInfo, (nValue) => { formObj.value = nValue; - } + }, + { deep: false, immediate: false } ); //鐩戝惉琛ㄥ崟閲嶇疆鍔熻兘瑙﹀彂 diff --git a/src/components/search-option/FYOptionLocation.vue b/src/components/search-option/FYOptionLocation.vue index 98db772..ea6c3d4 100644 --- a/src/components/search-option/FYOptionLocation.vue +++ b/src/components/search-option/FYOptionLocation.vue @@ -1,5 +1,5 @@ <template> - <el-form-item :label="placeholder"> + <el-form-item :label="placeholder" :prop="prop"> <el-cascader v-model="selectedOptions" :options="locations" @@ -39,7 +39,8 @@ checkStrictly: { type: Boolean, default: true - } + }, + prop: String }, emits: ['update:value'], data() { @@ -81,13 +82,12 @@ return } if (nVal != oVal) { - if (nVal || nVal.length > 0) { - this.selectedOptions = this.optionFormatReverse(nVal); - } + this.selectedOptions = this.optionFormatReverse(nVal) } }, deep: true, - }, + immediate: true + } }, methods: { /** @@ -124,17 +124,19 @@ }, optionFormatReverse(val) { const res = [] - if (val.pCode) { - res.push([val.pCode, val.pName]) - } - if (val.cCode) { - res.push([val.cCode, val.cName]) - } - if (val.dCode) { - res.push([val.dCode, val.dName]) - } - if (val.tCode) { - res.push([val.tCode, val.tName]) + if (val) { + if (val.pCode) { + res.push([val.pCode, val.pName]) + } + if (val.cCode) { + res.push([val.cCode, val.cName]) + } + if (val.dCode) { + res.push([val.dCode, val.dName]) + } + if (val.tCode) { + res.push([val.tCode, val.tName]) + } } return res } diff --git a/src/components/search-option/FYOptionOnlineStatus.vue b/src/components/search-option/FYOptionOnlineStatus.vue index dacbd38..3d245b1 100644 --- a/src/components/search-option/FYOptionOnlineStatus.vue +++ b/src/components/search-option/FYOptionOnlineStatus.vue @@ -56,6 +56,7 @@ } }, deep: true, + immediate: true }, }, mounted() { diff --git a/src/components/search-option/FYOptionScene.vue b/src/components/search-option/FYOptionScene.vue index 436ccdf..b02aff2 100644 --- a/src/components/search-option/FYOptionScene.vue +++ b/src/components/search-option/FYOptionScene.vue @@ -1,5 +1,5 @@ <template> - <el-form-item label="鍦烘櫙绫诲瀷"> + <el-form-item label="鍦烘櫙绫诲瀷" :prop="prop"> <el-select v-model="selectedOptions" placeholder="鍦烘櫙绫诲瀷" @@ -37,6 +37,7 @@ type: Boolean, default: true, }, + prop: String }, emits: ['update:value'], data() { @@ -61,6 +62,7 @@ } }, deep: true, + immediate: true }, }, mounted() { diff --git a/src/components/search-option/FYOptionTime.vue b/src/components/search-option/FYOptionTime.vue index fdea90c..9a6ba6f 100644 --- a/src/components/search-option/FYOptionTime.vue +++ b/src/components/search-option/FYOptionTime.vue @@ -47,7 +47,8 @@ if (nVal != oVal) { this.selectedOptions = nVal } - } + }, + immediate: true } }, methods: { diff --git a/src/components/search-option/FYOptionUserType.vue b/src/components/search-option/FYOptionUserType.vue index 164c672..f127187 100644 --- a/src/components/search-option/FYOptionUserType.vue +++ b/src/components/search-option/FYOptionUserType.vue @@ -1,5 +1,5 @@ <template> - <el-form-item label="鐢ㄦ埛绫诲瀷"> + <el-form-item label="鐢ㄦ埛绫诲瀷" :prop="prop"> <el-select v-model="selectedOptions" placeholder="鐢ㄦ埛绫诲瀷" @@ -32,6 +32,7 @@ type: Boolean, default: true, }, + prop: String }, emits: ['update:value'], data() { @@ -56,6 +57,7 @@ } }, deep: true, + immediate: true }, }, mounted() { diff --git a/src/components/table/FYTable.vue b/src/components/table/FYTable.vue index d87d4c8..c519077 100644 --- a/src/components/table/FYTable.vue +++ b/src/components/table/FYTable.vue @@ -6,18 +6,22 @@ </template> </FYSearchBar> </el-row> - + <el-row ref="expandRef"> + <slot name="options-expand"></slot> + </el-row> <el-table :data="tableData" v-loading="loading" table-layout="fixed" :row-class-name="tableRowClassName" :height="tableHeight" + border > <slot name="table-column"></slot> </el-table> <el-pagination + v-if="pagination" ref="paginationRef" class="el-pagination" v-model:current-page="currentPage" @@ -41,6 +45,10 @@ export default { props: { rowClassName: undefined, + pagination: { + type: Boolean, + default: true + } }, data() { return { @@ -49,21 +57,21 @@ total: 0, currentPage: 1, pageSize: 20, - loading: false, - }; + loading: false + } }, emits: ['search'], watch: { currentPage(nValue, oValue) { if (nValue != oValue) { - this.onSearch(); + this.onSearch() } }, pageSize(nValue, oValue) { if (nValue != oValue) { - this.onSearch(); + this.onSearch() } - }, + } }, methods: { /** @@ -72,43 +80,45 @@ * 鍥炶皟鍑芥暟鎺ユ敹涓�涓璞★紝鍖呮嫭琛ㄦ牸鏁版嵁鏁扮粍data鍜屾暟鎹�绘暟total */ onSearch() { - this.loading = true; + this.loading = true this.$emit( 'search', { currentPage: this.currentPage, - pageSize: this.pageSize, + pageSize: this.pageSize }, (res) => { - this.tableData = res.data; - this.total = res.total; - this.loading = false; + this.tableData = res.data + this.total = res.total ? res.total : 0 + this.loading = false } - ); + ) }, calcTableHeight() { - const h1 = this.$refs.searchRef.$el.offsetHeight; - const h2 = this.$refs.paginationRef.$el.offsetHeight; + const h1 = this.$refs.searchRef.$el.offsetHeight + const h2 = this.$refs.paginationRef ? this.$refs.paginationRef.$el.offsetHeight : 0 + const h3 = this.$refs.expandRef.$el.offsetHeight + const h = h1 + h2 + h3 // return `calc(100vh - ${h1}px - ${h2}px - var(--el-main-padding) * 2 - var(--el-header-height))`; - return `calc(100vh - ${h1}px - ${h2}px - 60px - var(--el-main-padding) * 2)`; + return `calc(100vh - ${h}px - 60px - var(--el-main-padding) * 2)` }, tableRowClassName({ row }) { if (this.rowClassName) { if (typeof this.rowClassName == 'string') { - return this.rowClassName; + return this.rowClassName } else if (typeof this.rowClassName == 'function') { - return this.rowClassName({ row }); + return this.rowClassName({ row }) } } else { - return row.extension1 != '0' ? 'online-row' : 'offline-row'; + return row.extension1 != '0' ? 'online-row' : 'offline-row' } - }, + } }, mounted() { - this.tableHeight = this.calcTableHeight(); - this.onSearch(); - }, -}; + this.tableHeight = this.calcTableHeight() + this.onSearch() + } +} </script> <style> diff --git a/src/composables/formConfirm.js b/src/composables/formConfirm.js index 306b125..d568fe0 100644 --- a/src/composables/formConfirm.js +++ b/src/composables/formConfirm.js @@ -1,24 +1,29 @@ -// 琛ㄥ崟鐨勭‘璁ゅ拰鍙栨秷 -import { onActivated, onDeactivated, ref, watch } from 'vue'; +import { defineProps, onActivated, onDeactivated, ref, watch } from 'vue'; import { useCloned } from '@vueuse/core'; import { useMessageBoxTip, useMessageBox } from './messageBox'; +// 琛ㄥ崟鐨勭‘璁ゅ拰鍙栨秷 export function useFormConfirm({ defaultForm = undefined, submit = { - do: () => {}, + do: () => {} }, cancel = { - do: () => {}, + do: () => {} }, reset = { - do: () => {}, - }, + do: () => {} + } }) { if (!submit.title) submit.title = '鎻愪氦'; if (!submit.msg) submit.msg = '纭鏄惁鎻愪氦锛�'; if (!cancel.title) cancel.title = '鍙栨秷'; if (!cancel.msg) cancel.msg = '鏄惁鏀惧純宸茬紪杈戠殑鍐呭锛�'; + + const formProps = defineProps({ + // 鏄惁鍦ㄦ彁浜ゆ垚鍔熷悗娓呯┖琛ㄥ崟 + clearAftSubmit: Boolean + }); //琛ㄥ崟鍐呭 const formObj = ref(defaultForm ? defaultForm : {}); @@ -67,20 +72,21 @@ edit.value = false; isReset = true; formObj.value = useCloned(formObjClone.cloned, { - manual: true, + manual: true }).cloned.value; formRef.value.clearValidate(); }; // 娓呯┖琛ㄥ崟 const clear = function () { - edit.value = false; isReset = true; - formRef.value.resetFields(); + // formRef.value.resetFields(); + edit.value = false; }; // 鎻愪氦鎴愬姛鍚� const submited = function () { + if (formProps.clearAftSubmit) clear(); edit.value = false; formObjClone = useCloned(formObj, { manual: true }); }; @@ -93,10 +99,10 @@ confirmMsg: submit.msg, confirmTitle: submit.title, onConfirm: async () => { - await submit.do(); + const res = await submit.do(); submited(); - return; - }, + return res; + } }); } }); @@ -110,9 +116,9 @@ confirmMsg: cancel.msg, confirmTitle: cancel.title, onConfirm: () => { - clear(); + // clear(); return cancel.do(); - }, + } }); } else { cancel.do(); @@ -130,7 +136,7 @@ onConfirm: () => { _reset(); return reset.do(); - }, + } }); } else { _reset(); @@ -141,5 +147,5 @@ } }; - return { formObj, formRef, edit, onSubmit, onCancel, onReset }; + return { formProps, formObj, formRef, edit, onSubmit, onCancel, onReset }; } diff --git a/src/composables/messageBox.js b/src/composables/messageBox.js index d896244..8606bd6 100644 --- a/src/composables/messageBox.js +++ b/src/composables/messageBox.js @@ -15,7 +15,7 @@ let msg = `宸�${doneMsg}` if (typeof onConfirm === 'function') { const str = await onConfirm(); - if (str && str != '') { + if (typeof str === 'string' && str != '') { msg = `宸�${doneMsg}, ${str}` } } diff --git a/src/constants/envCreditCode.js b/src/constants/envCreditCode.js new file mode 100644 index 0000000..184d7af --- /dev/null +++ b/src/constants/envCreditCode.js @@ -0,0 +1,26 @@ +// 鐜俊鐮佽浆鎹� + +function envCreditCode(score) { + const s = parseInt(score) + if (s <= 59) { + return { + value: 2, + name: '绾㈢爜', + color: '#db2828' + }; + } else if (s <= 89) { + return { + value: 1, + name: '榛勭爜', + color: '#f7a62c' + }; + } else { + return { + value: 0, + name: '缁跨爜', + color: '#21ba45' + }; + } +} + +export { envCreditCode }; diff --git a/src/constants/index.js b/src/constants/index.js index 51c825e..293b045 100644 --- a/src/constants/index.js +++ b/src/constants/index.js @@ -1 +1,2 @@ -export { MENU_FYSP, MENU_FYTZ, MENU_FYPW } from './menu' +export { MENU_FYSP, MENU_FYTZ, MENU_FYPW } from './menu'; +export { envCreditCode } from './envCreditCode'; diff --git a/src/constants/menu.js b/src/constants/menu.js index edc83a5..afb67dd 100644 --- a/src/constants/menu.js +++ b/src/constants/menu.js @@ -36,12 +36,12 @@ { path: '/fysp/evaluation/datasource', icon: 'MessageBox', - name: '璇勪及鏁版嵁婧�', + name: '璇勪及浠诲姟', }, { path: '/fysp/evaluation/resultManage', icon: 'Tickets', - name: '璇勪及绠$悊', + name: '璇勪及璁板綍', }, ], }, diff --git a/src/stores/loadingStore.js b/src/stores/loadingStore.js index d8b2d1c..d69e666 100644 --- a/src/stores/loadingStore.js +++ b/src/stores/loadingStore.js @@ -1,23 +1,26 @@ // 鍔犺浇鐘舵�佺殑閫昏緫绠$悊 -import { defineStore } from 'pinia' +import { defineStore } from 'pinia'; export const useLoadingStore = defineStore('loading', { state: () => { return { loadingStatus: [] - } + }; }, actions: { + pushLoading(func) { + const timeout = setTimeout(func, 3000); + this.loadingStatus.push({ t: timeout, f: func }); + }, clearLoading() { - this.loadingStatus.forEach(l => { - if (typeof l === 'function') { - l() - } - }); if (this.loadingStatus.length > 0) { - this.loadingStatus = [] + this.loadingStatus.forEach((obj) => { + clearTimeout(obj.t) + obj.f() + }); + this.loadingStatus = []; } } } -}) \ No newline at end of file +}); diff --git a/src/views/baseinfo/fysp/scene/CompSceneBaseInfo.vue b/src/views/baseinfo/fysp/scene/CompSceneBaseInfo.vue index 5e4360a..ead76bf 100644 --- a/src/views/baseinfo/fysp/scene/CompSceneBaseInfo.vue +++ b/src/views/baseinfo/fysp/scene/CompSceneBaseInfo.vue @@ -1,6 +1,16 @@ <!-- 鍦烘櫙鍩烘湰淇℃伅缂栬緫 --> <template> +<<<<<<< HEAD <FYForm :form-info="_formInfo" :rules="rules" @submit="submit" @cancel="cancel"> +======= + <FYForm + :form-info="_formInfo" + :rules="rules" + :useReset="true" + @submit="submit" + @cancel="cancel" + > +>>>>>>> 356f54467f525f437f41271fb62f6be66f2ab1e5 <template #form-item="{ formObj }"> <el-form-item label="鍦烘櫙鍚嶇О" prop="name"> <el-input clearable show-word-limit v-model="formObj.name" placeholder="鍦烘櫙鍚嶇О" /> @@ -78,9 +88,9 @@ const emit = defineEmits(['onSubmit', 'onCancel']) -const _formInfo = ref() -const sceneTypes = reactive(enumScene(2, false)) -const locations = reactive(enumLocation(false)) +const _formInfo = ref({}); +const sceneTypes = reactive(enumScene(2, false)); +const locations = reactive(enumLocation(false)); const cascaderProps = reactive({ checkStrictly: true }) diff --git a/src/views/baseinfo/fysp/scene/SceneInfo.vue b/src/views/baseinfo/fysp/scene/SceneInfo.vue index 535e602..b3e7682 100644 --- a/src/views/baseinfo/fysp/scene/SceneInfo.vue +++ b/src/views/baseinfo/fysp/scene/SceneInfo.vue @@ -107,7 +107,7 @@ }, itemEdit(scope) { scope.row.loading1 = true; - this.loadingStore.loadingStatus.push(() => (scope.row.loading1 = false)); + this.loadingStore.pushLoading(() => (scope.row.loading1 = false)); this.$router.push(`sceneEdit/${scope.row.guid}`); }, itemActive(scope) { diff --git a/src/views/fysp/evaluation/DataSource.vue b/src/views/fysp/evaluation/DataSource.vue index 9f57df9..61476d4 100644 --- a/src/views/fysp/evaluation/DataSource.vue +++ b/src/views/fysp/evaluation/DataSource.vue @@ -1,14 +1,28 @@ <template> - <div>DataSource</div> + <el-row :gutter="16"> + <el-col :span="16"> + <CompPreCheck></CompPreCheck> + </el-col> + <el-col :span="8"> + <div class="radius"></div> + </el-col> + </el-row> </template> <script> +import CompPreCheck from "./components/CompPreCheck.vue"; export default { name: 'DataSource', + components: { CompPreCheck }, data() { - return { - - } + return {}; } }; </script> +<style scoped> +.radius { + height: 80vh; + border: 1px solid var(--el-border-color); + border-radius: var(--el-border-radius-base); +} +</style> diff --git a/src/views/fysp/evaluation/ResultManage.vue b/src/views/fysp/evaluation/ResultManage.vue index 864aab2..da2c668 100644 --- a/src/views/fysp/evaluation/ResultManage.vue +++ b/src/views/fysp/evaluation/ResultManage.vue @@ -1,24 +1,173 @@ <template> - <CompPreCheck @pre-check="autoEvaluate"></CompPreCheck> + <!-- <CompPreCheck @pre-check="autoEvaluate"></CompPreCheck> --> + + <FYTable @search="onSearch" :pagination="false" ref="tableRef"> + <template #options> + <!-- 鍖哄幙 --> + <FYOptionLocation + :allOption="false" + :level="3" + :checkStrictly="false" + v-model:value="formSearch.locations" + ></FYOptionLocation> + <!-- 鍦烘櫙绫诲瀷 --> + <FYOptionScene + :allOption="false" + :type="2" + v-model:value="formSearch.scenetype" + ></FYOptionScene> + <!-- 鏃堕棿 --> + <FYOptionTime :initValue="false" type="month" v-model:value="formSearch.time"></FYOptionTime> + </template> + + <template #options-expand> + <CompQuickSet @quick-set="setOptions"></CompQuickSet> + </template> + + <template #table-column> + <el-table-column type="index" fixed="left" prop="sceneName" label="鍚嶇О" width="300"> + <template #default="{ row }"> + <el-tooltip + effect="dark" + :content="row.sceneName" + placement="top-start" + :show-after="500" + > + {{ row.sceneName }} + </el-tooltip> + </template> + </el-table-column> + <el-table-column + prop="subTaskTime" + label="宸℃煡鏃ユ湡" + width="110" + sortable + :formatter="timeFormat" + /> + <el-table-column + prop="evaluation.resultscorebef" + label="寰楀垎" + width="90" + sortable + :sort-method="sortScore" + /> + <el-table-column prop="evaluation.resultscorebef" label="鐜俊鐮�" width="100"> + <template #default="{ row }"> + <span :style="`color: ${toCode(row).color};`">{{ toCode(row).name }}</span> + </template> + </el-table-column> + + <el-table-column prop="dname" label="鍖哄幙" width="90" /> + <el-table-column + prop="tname" + label="琛楅亾" + width="110" + :filters="townFilters" + :filter-method="filterHandler" + /> + <el-table-column prop="evaluation.scenseaddress" label="鍦板潃" /> + <!-- <el-table-column prop="biArea" label="闆嗕腑鍖�" width="110" /> + <el-table-column prop="biManagementCompany" label="鐗╀笟" min-width="110"/> --> + <el-table-column fixed="right" align="right" label="鎿嶄綔" width="160"> + <template #header> + <el-button icon="DocumentAdd" size="default" type="success" @click="drawer = true" + >鑷姩璇勪及</el-button + > + </template> + <template #default="{ row }"> + <el-button type="primary" size="small" @click="editRow(row)">鏌ョ湅</el-button> + </template> + </el-table-column> + </template> + </FYTable> </template> <script> -import CompPreCheck from './components/CompPreCheck.vue'; +import dayjs from 'dayjs'; +import evaluateApi from '@/api/fysp/evaluateApi'; +import { envCreditCode } from '@/constants/index'; +import CompQuickSet from './components/CompQuickSet.vue'; export default { - name: 'ResultManage', - components: { CompPreCheck }, - data() { - return {}; + name: 'ResultManage', + components: { CompQuickSet }, + data() { + return { + formSearch: { + locations: {}, + scenetype: {}, + time: dayjs().add(-1, 'M').date(1).toDate() + }, + townFilters: [] + }; + }, + methods: { + setOptions(param) { + this.formSearch.locations = param.locations; + this.formSearch.scenetype = param.scenetype; + this.$refs.tableRef.onSearch() }, - methods:{ - /** - * 閫氳繃鑷瘎棰勬鍚庯紝鎵ц鑷姩璇勪及 - * @param {*} options 鏌ヨ鍙傛暟 - */ - autoEvaluate(options){ - + onSearch(page, func) { + const { locations, scenetype, time } = this.formSearch; + const area = { + provincecode: locations.pCode, + provincename: locations.pName, + citycode: locations.cCode, + cityname: locations.cName, + districtcode: locations.dCode, + districtname: locations.dName, + starttime: dayjs(time).format('YYYY-MM-DD'), + scensetypeid: scenetype.value + }; + evaluateApi.fetchAutoEvaluation(area).then((res) => { + if (typeof func === 'function') { + func({ data: res.data }); + } + if (res.data) { + this.getFilters(res.data); + } + }); + }, + getFilters(data) { + const townList = []; + data.forEach((e) => { + if (townList.indexOf(e.tname) == -1) { + townList.push(e.tname); + } + }); + this.townFilters = townList.map((v) => { + return { text: v, value: v }; + }); + }, + toCode(row, column) { + if (row.evaluation) { + return envCreditCode(row.evaluation.resultscorebef); + } else { + return ''; } + }, + timeFormat(row, column) { + const time = row.subTaskTime; + if (time) { + return dayjs(time).format('MM-DD'); + } else { + return ''; + } + }, + filterHandler(value, row, column) { + const property = column['property']; + return row[property] === value; + }, + sortScore(a, b) { + const s1 = a.evaluation ? parseInt(a.evaluation.resultscorebef) : 0; + const s2 = b.evaluation ? parseInt(b.evaluation.resultscorebef) : 0; + return s1 - s2; } + } }; </script> +<style scoped> +.a { + color: #f7a62c; +} +</style> diff --git a/src/views/fysp/evaluation/components/CompHistoryRecord.vue b/src/views/fysp/evaluation/components/CompHistoryRecord.vue new file mode 100644 index 0000000..95fda22 --- /dev/null +++ b/src/views/fysp/evaluation/components/CompHistoryRecord.vue @@ -0,0 +1,10 @@ +<template> + <div></div> +</template> +<script> +export default { + methods:{ + + } +} +</script> \ No newline at end of file diff --git a/src/views/fysp/evaluation/components/CompPreCheck.vue b/src/views/fysp/evaluation/components/CompPreCheck.vue index 315b76b..f99b60b 100644 --- a/src/views/fysp/evaluation/components/CompPreCheck.vue +++ b/src/views/fysp/evaluation/components/CompPreCheck.vue @@ -1,115 +1,76 @@ <template> - <FYSearchBar @search="preCheck"> - <template #options> - <!-- 鍖哄幙 --> - <FYOptionLocation - :allOption="false" - :level="3" - :checkStrictly="false" - v-model:value="formSearch._locations" - ></FYOptionLocation> - <!-- 鍦烘櫙绫诲瀷 --> - <FYOptionScene - :allOption="false" - :type="2" - v-model:value="formSearch.scenetype" - ></FYOptionScene> - <!-- 鏃堕棿 --> - <FYOptionTime type="month" v-model:value="formSearch.time"></FYOptionTime> + <el-steps :active="stepIndex" finish-status="success" style="" align-center> + <el-step title="璇勪及鑼冨洿" /> + <el-step title="鏁版嵁婧愭鏌�" /> + <el-step title="璞佸厤鏉$洰" /> + <el-step title="鑷姩璇勪及" /> + </el-steps> + + <el-card v-if="stepIndex == 0" shadow="never"> + <template #header> + <div><el-text tag="b" size="large">閫夋嫨璇勪及鑼冨洿</el-text></div> + <el-text size="small" type="info">鍖呮嫭鍖哄幙銆佸満鏅被鍨嬩互鍙婃湀浠�</el-text> </template> - </FYSearchBar> - <el-row> - <span>蹇嵎閫夋嫨</span> - <el-button v-for="(v, i) in quickSetting" :key="i" type="primary" @click="quickSet(v)">{{ - v.name - }}</el-button> - </el-row> + <FYForm :form-info="evaConditon" :rules="evaConditionRules" :showButtons="false"> + <template #form-item="{ formObj }"> + <!-- 鍖哄幙 --> + <FYOptionLocation + :allOption="false" + :level="3" + :checkStrictly="false" + v-model:value="formObj.locations" + ></FYOptionLocation> + <!-- 鍦烘櫙绫诲瀷 --> + <FYOptionScene + :allOption="false" + :type="2" + v-model:value="formObj.scenetype" + ></FYOptionScene> + <!-- 鏃堕棿 --> + <FYOptionTime + :initValue="true" + type="month" + v-model:value="formObj.time" + ></FYOptionTime> + </template> + </FYForm> + <template #footer> + <el-row justify="space-around"> + <el-button type="primary" size="default">涓嬩竴姝�</el-button> + </el-row> + </template> + </el-card> + <el-card v-if="stepIndex == 1" shadow="never"> Never2 </el-card> + <el-card v-if="stepIndex == 2" shadow="never"> Never3 </el-card> + <el-card v-if="stepIndex == 3" shadow="never"> Never4 </el-card> </template> <script> +import dayjs from 'dayjs'; + /** * 鑷姩璇勪及鏉′欢鍚堣鎬ф鏌� */ export default { name: 'CompPreCheck', - props: { - quickSetting: { - type: Array, - default: () => { - return [ - { - name: '闈欏畨宸ュ湴', - locations: { - pCode: '31', - pName: '涓婃捣甯�', - cCode: '3100', - cName: '涓婃捣甯�', - dCode: '310106', - dName: '闈欏畨鍖�' - }, - scenetype: { label: '宸ュ湴', value: '1' } - }, - { - name: '寰愭眹椁愰ギ', - locations: { - pCode: '31', - pName: '涓婃捣甯�', - cCode: '3100', - cName: '涓婃捣甯�', - dCode: '310104', - dName: '寰愭眹鍖�' - }, - scenetype: { label: '椁愰ギ', value: '5' } - }, - { - name: '閲戝北宸ュ湴', - locations: { - pCode: '31', - pName: '涓婃捣甯�', - cCode: '3100', - cName: '涓婃捣甯�', - dCode: '310116', - dName: '閲戝北鍖�' - }, - scenetype: { label: '宸ュ湴', value: '1' } - }, - { - name: '閲戝北鐮佸ご', - locations: { - pCode: '31', - pName: '涓婃捣甯�', - cCode: '3100', - cName: '涓婃捣甯�', - dCode: '310116', - dName: '閲戝北鍖�' - }, - scenetype: { label: '鐮佸ご', value: '2' } - }, - { - name: '閲戝北鎼呮媽绔�', - locations: { - pCode: '31', - pName: '涓婃捣甯�', - cCode: '3100', - cName: '涓婃捣甯�', - dCode: '310116', - dName: '閲戝北鍖�' - }, - scenetype: { label: '鎼呮媽绔�', value: '3' } - } - ] - } - } - }, + props: {}, emits: ['preCheck'], data() { return { - formSearch: { - _locations: {}, - scenetype: {}, - time: undefined + // 鎿嶄綔姝ラ涓嬫爣 + stepIndex: 0, + // 璇勪及浠诲姟鑼冨洿 + evaConditon: {}, + evaConditionRules: { + acountname: [ + { + required: true, + message: '璐︽埛鍚嶄笉鑳戒负绌�', + trigger: 'blur' + } + ] } - } + }; }, methods: { /** @@ -117,18 +78,8 @@ * 妫�鏌ユ墍閫夎寖鍥村唴鍚勯」璇勪及鏁版嵁婧愭槸鍚﹀畬鏁� */ preCheck() { - this.$emit('preCheck', this.formSearch) - }, - - /** - * 蹇�熻缃潯浠� - */ - quickSet(set) { - this.formSearch._locations = set.locations - this.formSearch.scenetype = set.scenetype - - this.preCheck() + // this.$emit('preCheck', param) } } -} +}; </script> diff --git a/src/views/fysp/evaluation/components/CompQuickSet.vue b/src/views/fysp/evaluation/components/CompQuickSet.vue new file mode 100644 index 0000000..23a99a8 --- /dev/null +++ b/src/views/fysp/evaluation/components/CompQuickSet.vue @@ -0,0 +1,94 @@ +<template> + <el-row> + <span>蹇嵎閫夋嫨</span> + <el-button v-for="(v, i) in quickSetting" :key="i" type="primary" @click="quickSet(v)">{{ + v.name + }}</el-button> + </el-row> +</template> +<script> +export default { + props: { + quickSetting: { + type: Array, + default: () => { + return [ + { + name: '闈欏畨宸ュ湴', + locations: { + pCode: '31', + pName: '涓婃捣甯�', + cCode: '3100', + cName: '涓婃捣甯�', + dCode: '310106', + dName: '闈欏畨鍖�' + }, + scenetype: { label: '宸ュ湴', value: '1' } + }, + { + name: '寰愭眹椁愰ギ', + locations: { + pCode: '31', + pName: '涓婃捣甯�', + cCode: '3100', + cName: '涓婃捣甯�', + dCode: '310104', + dName: '寰愭眹鍖�' + }, + scenetype: { label: '椁愰ギ', value: '5' } + }, + { + name: '閲戝北宸ュ湴', + locations: { + pCode: '31', + pName: '涓婃捣甯�', + cCode: '3100', + cName: '涓婃捣甯�', + dCode: '310116', + dName: '閲戝北鍖�' + }, + scenetype: { label: '宸ュ湴', value: '1' } + }, + { + name: '閲戝北鐮佸ご', + locations: { + pCode: '31', + pName: '涓婃捣甯�', + cCode: '3100', + cName: '涓婃捣甯�', + dCode: '310116', + dName: '閲戝北鍖�' + }, + scenetype: { label: '鐮佸ご', value: '2' } + }, + { + name: '閲戝北鎼呮媽绔�', + locations: { + pCode: '31', + pName: '涓婃捣甯�', + cCode: '3100', + cName: '涓婃捣甯�', + dCode: '310116', + dName: '閲戝北鍖�' + }, + scenetype: { label: '鎼呮媽绔�', value: '3' } + } + ] + } + } + }, + emits: ['quickSet'], + methods: { + /** + * 蹇�熻缃潯浠� + * @param {locations, scenetype} set + */ + quickSet(set) { + // this.formSearch.locations = set.locations + // this.formSearch.scenetype = set.scenetype + + this.$emit('quickSet', set) + } + } +} +</script> diff --git a/src/views/fytz/user/UserInfo.vue b/src/views/fytz/user/UserInfo.vue index 27d814e..ac17524 100644 --- a/src/views/fytz/user/UserInfo.vue +++ b/src/views/fytz/user/UserInfo.vue @@ -6,7 +6,11 @@ :level="4" v-model:value="formSearch._locations" ></FYOptionLocation> - <FYOptionText label="鍏抽敭瀛�" placeholder="杈撳叆鍚嶇О鍏抽敭瀛�" v-model:value="formSearch.searchText"></FYOptionText> + <FYOptionText + label="鍏抽敭瀛�" + placeholder="杈撳叆鍚嶇О鍏抽敭瀛�" + v-model:value="formSearch.searchText" + ></FYOptionText> <FYOptionScene :allOption="true" :type="1" @@ -19,13 +23,7 @@ </template> <template #table-column> - <el-table-column - type="index" - fixed="left" - prop="userInfo.realname" - label="鍚嶇О" - width="400" - > + <el-table-column type="index" fixed="left" prop="userInfo.realname" label="鍚嶇О" width="400"> <template #default="scope"> <el-tooltip effect="dark" @@ -45,20 +43,16 @@ <el-table-column prop="userInfo.extension1" label="鍖哄幙" width="90" /> <el-table-column prop="biTownName" label="琛楅亾" width="110" /> <el-table-column prop="biArea" label="闆嗕腑鍖�" width="110" /> - <el-table-column prop="biManagementCompany" label="鐗╀笟" min-width="110"/> + <el-table-column prop="biManagementCompany" label="鐗╀笟" min-width="110" /> <el-table-column prop="userInfo.isenable" label="鐘舵��" width="90"> <template #default="scope"> {{ scope.row.userInfo.isenable ? '涓婄嚎涓�' : '宸蹭笅绾�' }} </template> </el-table-column> <el-table-column prop="userInfo.usertype" label="鐢ㄦ埛绫诲瀷" width="90" /> - <el-table-column fixed="right" align="right" label="鎿嶄綔" width="140"> + <el-table-column fixed="right" align="right" label="鎿嶄綔" width="160"> <template #header> - <el-button - icon="DocumentAdd" - size="default" - type="success" - @click="drawer = true" + <el-button icon="DocumentAdd" size="default" type="success" @click="drawer = true" >鏂板鐢ㄦ埛</el-button > </template> @@ -70,13 +64,13 @@ @click="editRow(scope)" >鏌ョ湅</el-button > - <!-- <el-button + <el-button :loading="scope.row.loading2" - :type="scope.row.extension1 != '0' ? 'danger' : 'primary'" + :type="scope.row.userInfo.isenable != '0' ? 'danger' : 'primary'" size="small" @click="itemActive(scope)" - >{{ scope.row.extension1 != '0' ? '涓嬬嚎' : '涓婄嚎' }}</el-button - > --> + >{{ scope.row.userInfo.isenable != '0' ? '涓嬬嚎' : '涓婄嚎' }}</el-button + > </template> </el-table-column> </template> @@ -93,7 +87,7 @@ export default { components: { - CompUserInfoAddDrawer, + CompUserInfoAddDrawer }, data() { return { @@ -101,26 +95,26 @@ _locations: {}, searchText: '', scensetype: {}, - online: {}, + online: {} }, - drawer: false, + drawer: false }; }, computed: { - ...mapStores(useLoadingStore), + ...mapStores(useLoadingStore) }, methods: { onSearch(page, func) { const f = this.formSearch; const area = {}; // 琛屾斂鍖哄垝 - area.provinceCode = f._locations.pCode ? f._locations.pCode + '0000' : undefined + area.provinceCode = f._locations.pCode; area.provinceName = f._locations.pName; if (area.provinceCode == null) { area.provinceCode = null; area.provinceName = null; } - area.cityCode = f._locations.cCode ? f._locations.cCode.substring(0, 3) + '100' : undefined + area.cityCode = f._locations.cCode; area.cityName = f._locations.cName; area.districtCode = f._locations.dCode; area.districtName = f._locations.dName; @@ -140,43 +134,44 @@ if (res) { func({ data: res.data, - total: res.head.totalCount, + total: res.head.totalCount }); } }); }, editRow(scope) { scope.row.loading1 = true; - this.loadingStore.loadingStatus.push(() => (scope.row.loading1 = false)); - this.$router.push(`userEdit/${scope.row.biGuid}`); + this.loadingStore.pushLoading(() => (scope.row.loading1 = false)); + this.$router.push(`userEdit/${scope.row.userInfo.guid}`); }, itemActive(scope) { - const rb = {}; - rb.guid = scope.row.guid; - rb.extension1 = scope.row.extension1 != '0' ? '0' : '1'; - const msg = scope.row.extension1 != '0' ? '涓嬬嚎' : '涓婄嚎'; + const param = { + guid: scope.row.userInfo.guid, + isenable: !scope.row.userInfo.isenable + }; + const msg = scope.row.userInfo.isenable ? '涓嬬嚎' : '涓婄嚎'; useMessageBoxTip({ confirmMsg: `纭${msg}璇ュ満鏅紵`, confirmTitle: msg, - onConfirm: () => { + onConfirm: async () => { scope.row.loading2 = true; return userApi - .updateScene(rb) + .updateUserInfo(param) .then((res) => { - if (res == 1) { - scope.row.extension1 = rb.extension1; + if (res.success) { + scope.row.userInfo.isenable = param.isenable; } }) .finally(() => { scope.row.loading2 = false; }); - }, + } }); }, tableRowClassName({ row }) { return row.userInfo.isenable ? 'online-row' : 'offline-row'; - }, - }, + } + } }; </script> <style></style> diff --git a/src/views/fytz/user/components/CompUserInfoAddDrawer.vue b/src/views/fytz/user/components/CompUserInfoAddDrawer.vue index cbd243a..fc0f3d1 100644 --- a/src/views/fytz/user/components/CompUserInfoAddDrawer.vue +++ b/src/views/fytz/user/components/CompUserInfoAddDrawer.vue @@ -58,9 +58,10 @@ } }, onDrawerCancel() { - this.onDrawerClose(() => { - this.drawer_ = false; - }); + // this.onDrawerClose(() => { + // this.drawer_ = false; + // }); + this.drawer_ = false; }, }, }; -- Gitblit v1.9.3