From c37f0db24bcb9c08c11da9cd96e562a84cd66e6a Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期四, 14 十二月 2023 17:39:50 +0800 Subject: [PATCH] 评估管理模块完成历史记录展示 --- src/components/search-option/FYOptionTime.vue | 3 src/views/fysp/evaluation/ResultManage.vue | 108 +++++++++++++++-- src/composables/formConfirm.js | 2 src/components/form/FYForm.vue | 1 src/api/fysp/evaluateApi.js | 11 + src/components/search-option/FYOptionLocation.vue | 5 src/components/table/FYTable.vue | 55 +++++--- src/components/search-option/FYOptionOnlineStatus.vue | 1 src/components/search-option/FYOptionUserType.vue | 1 src/api/index.js | 2 src/views/fysp/evaluation/components/CompPreCheck.vue | 21 ++- src/views/fysp/evaluation/components/CompQuickSet.vue | 94 +++++++++++++++ src/views/fysp/evaluation/components/CompHistoryRecord.vue | 10 + src/components/search-option/FYOptionScene.vue | 1 14 files changed, 264 insertions(+), 51 deletions(-) diff --git a/src/api/fysp/evaluateApi.js b/src/api/fysp/evaluateApi.js new file mode 100644 index 0000000..5a54955 --- /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).then((res) => res.data); + } +}; diff --git a/src/api/index.js b/src/api/index.js index f21aba3..1d6e329 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/'; diff --git a/src/components/form/FYForm.vue b/src/components/form/FYForm.vue index 7509183..0d68089 100644 --- a/src/components/form/FYForm.vue +++ b/src/components/form/FYForm.vue @@ -1,4 +1,3 @@ -<!-- 鍦烘櫙鍩烘湰淇℃伅缂栬緫 --> <template> <el-form :inline="false" diff --git a/src/components/search-option/FYOptionLocation.vue b/src/components/search-option/FYOptionLocation.vue index 98db772..34c47c0 100644 --- a/src/components/search-option/FYOptionLocation.vue +++ b/src/components/search-option/FYOptionLocation.vue @@ -82,12 +82,13 @@ } if (nVal != oVal) { if (nVal || nVal.length > 0) { - this.selectedOptions = this.optionFormatReverse(nVal); + this.selectedOptions = this.optionFormatReverse(nVal) } } }, deep: true, - }, + immediate: true + } }, methods: { /** 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..437b2b3 100644 --- a/src/components/search-option/FYOptionScene.vue +++ b/src/components/search-option/FYOptionScene.vue @@ -61,6 +61,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..bda5045 100644 --- a/src/components/search-option/FYOptionUserType.vue +++ b/src/components/search-option/FYOptionUserType.vue @@ -56,6 +56,7 @@ } }, deep: true, + immediate: true }, }, mounted() { diff --git a/src/components/table/FYTable.vue b/src/components/table/FYTable.vue index d87d4c8..0e6e982 100644 --- a/src/components/table/FYTable.vue +++ b/src/components/table/FYTable.vue @@ -6,7 +6,9 @@ </template> </FYSearchBar> </el-row> - + <el-row ref="expandRef"> + <slot name="options-expand"></slot> + </el-row> <el-table :data="tableData" v-loading="loading" @@ -18,6 +20,7 @@ </el-table> <el-pagination + v-if="pagination" ref="paginationRef" class="el-pagination" v-model:current-page="currentPage" @@ -41,6 +44,10 @@ export default { props: { rowClassName: undefined, + pagination: { + type: Boolean, + default: true + } }, data() { return { @@ -49,21 +56,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 +79,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..3b4d80c 100644 --- a/src/composables/formConfirm.js +++ b/src/composables/formConfirm.js @@ -1,8 +1,8 @@ -// 琛ㄥ崟鐨勭‘璁ゅ拰鍙栨秷 import { onActivated, onDeactivated, ref, watch } from 'vue'; import { useCloned } from '@vueuse/core'; import { useMessageBoxTip, useMessageBox } from './messageBox'; +// 琛ㄥ崟鐨勭‘璁ゅ拰鍙栨秷 export function useFormConfirm({ defaultForm = undefined, submit = { diff --git a/src/views/fysp/evaluation/ResultManage.vue b/src/views/fysp/evaluation/ResultManage.vue index 864aab2..0a3a198 100644 --- a/src/views/fysp/evaluation/ResultManage.vue +++ b/src/views/fysp/evaluation/ResultManage.vue @@ -1,24 +1,102 @@ <template> - <CompPreCheck @pre-check="autoEvaluate"></CompPreCheck> + <!-- <CompPreCheck @pre-check="autoEvaluate"></CompPreCheck> --> + + <FYTable @search="onSearch" :pagination="false"> + <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="400" + > + <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="dname" label="鍖哄幙" width="90" /> + <el-table-column prop="tname" label="琛楅亾" width="110" /> + <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 prop="evaluation.resultscorebef" label="寰楀垎" width="110" /> + </template> + </FYTable> </template> <script> -import CompPreCheck from './components/CompPreCheck.vue'; +import CompPreCheck from './components/CompPreCheck.vue' +import evaluateApi from '@/api/fysp/evaluateApi' +import dayjs from 'dayjs' +import CompQuickSet from './components/CompQuickSet.vue' export default { - name: 'ResultManage', - components: { CompPreCheck }, - data() { - return {}; - }, - methods:{ - /** - * 閫氳繃鑷瘎棰勬鍚庯紝鎵ц鑷姩璇勪及 - * @param {*} options 鏌ヨ鍙傛暟 - */ - autoEvaluate(options){ - + name: 'ResultManage', + components: { CompPreCheck, CompQuickSet }, + data() { + return { + formSearch: { + locations: {}, + scenetype: {}, + time: dayjs().add(-1, 'M').date(1).toDate() } } -}; + }, + methods: { + setOptions(param) { + this.formSearch.locations = param.locations + this.formSearch.scenetype = param.scenetype + }, + 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 (res) { + func({ + data: res.data + }) + } + }) + } + } +} </script> 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..0199703 100644 --- a/src/views/fysp/evaluation/components/CompPreCheck.vue +++ b/src/views/fysp/evaluation/components/CompPreCheck.vue @@ -6,7 +6,7 @@ :allOption="false" :level="3" :checkStrictly="false" - v-model:value="formSearch._locations" + v-model:value="formSearch.locations" ></FYOptionLocation> <!-- 鍦烘櫙绫诲瀷 --> <FYOptionScene @@ -15,7 +15,7 @@ v-model:value="formSearch.scenetype" ></FYOptionScene> <!-- 鏃堕棿 --> - <FYOptionTime type="month" v-model:value="formSearch.time"></FYOptionTime> + <FYOptionTime :initValue="false" type="month" v-model:value="formSearch.time"></FYOptionTime> </template> </FYSearchBar> <el-row> @@ -27,6 +27,8 @@ </template> <script> +import dayjs from 'dayjs' + /** * 鑷姩璇勪及鏉′欢鍚堣鎬ф鏌� */ @@ -105,9 +107,9 @@ data() { return { formSearch: { - _locations: {}, + locations: {}, scenetype: {}, - time: undefined + time: dayjs().add(-1, 'M').date(1).toDate() } } }, @@ -117,17 +119,22 @@ * 妫�鏌ユ墍閫夎寖鍥村唴鍚勯」璇勪及鏁版嵁婧愭槸鍚﹀畬鏁� */ preCheck() { - this.$emit('preCheck', this.formSearch) + const param = { + locations: this.formSearch.locations, + scenetype: this.formSearch.scenetype, + time: dayjs(this.formSearch.time).format('YYYY-MM-DD') + } + this.$emit('preCheck', param) }, /** * 蹇�熻缃潯浠� */ quickSet(set) { - this.formSearch._locations = set.locations + this.formSearch.locations = set.locations this.formSearch.scenetype = set.scenetype - this.preCheck() + // this.preCheck() } } } 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> -- Gitblit v1.9.3