From 635e1b3c0d48c2db884794cb8bc26d6ff1591ffa Mon Sep 17 00:00:00 2001 From: zmc <zmc_li@foxmail.com> Date: 星期四, 21 十二月 2023 16:24:46 +0800 Subject: [PATCH] 1.增加行政处罚的数据展示 2.增加信访的数据展示 --- src/views/fytz/user/components/CompComplaintList.vue | 84 +++++ src/composables/drawer.js | 12 src/views/fytz/user/UserEdit.vue | 64 ++- src/components.d.ts | 5 src/views/fytz/user/components/CompComplaint.vue | 72 ++++ src/api/fytz/lettersAndVisitsApi.js | 12 src/views/fytz/user/components/CompComplaintDrawer.vue | 110 ++++++ src/views/fytz/user/components/CompPanyInfo.vue | 262 ++++++++++++++++ src/api/fytz/punishmentApi.js | 12 src/views/fytz/user/components/CompPunishment.vue | 71 ++++ src/views/fytz/user/components/CompPunishmentDrawer.vue | 98 ++++++ src/views/fytz/user/components/CompBaseInfo.vue | 44 +- src/views/fytz/user/components/CompPunishmentList.vue | 86 +++++ 13 files changed, 885 insertions(+), 47 deletions(-) diff --git a/src/api/fytz/lettersAndVisitsApi.js b/src/api/fytz/lettersAndVisitsApi.js new file mode 100644 index 0000000..90fa5fa --- /dev/null +++ b/src/api/fytz/lettersAndVisitsApi.js @@ -0,0 +1,12 @@ +import { $fytz } from '../index'; + +export default { + /** + * 鑾峰彇鐢ㄦ埛鐨勪俊璁夸俊鎭� + * @param {String} userId + * @returns + */ + fetchLetterAndVisit(userId) { + return $fytz.get(`complaint?userId=${userId}`); + } +}; diff --git a/src/api/fytz/punishmentApi.js b/src/api/fytz/punishmentApi.js new file mode 100644 index 0000000..af1b692 --- /dev/null +++ b/src/api/fytz/punishmentApi.js @@ -0,0 +1,12 @@ +import { $fytz } from '../index'; + +export default { + /** + * 鑾峰彇鐢ㄦ埛鐨勮鏀垮缃氫俊鎭� + * @param {String} userId + * @returns + */ + fetchPunishment(userId) { + return $fytz.get(`complaint/punishment?userId=${userId}`); + } +}; diff --git a/src/components.d.ts b/src/components.d.ts index bdad972..faeff38 100644 --- a/src/components.d.ts +++ b/src/components.d.ts @@ -21,6 +21,7 @@ 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'] @@ -32,11 +33,13 @@ 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'] ElMenuItemGroup: typeof import('element-plus/es')['ElMenuItemGroup'] ElOption: typeof import('element-plus/es')['ElOption'] + ElOrmItem: typeof import('element-plus/es')['ElOrmItem'] ElPageHeader: typeof import('element-plus/es')['ElPageHeader'] ElPagination: typeof import('element-plus/es')['ElPagination'] ElPopover: typeof import('element-plus/es')['ElPopover'] @@ -53,7 +56,9 @@ ElTabPane: typeof import('element-plus/es')['ElTabPane'] ElTabs: typeof import('element-plus/es')['ElTabs'] ElTag: typeof import('element-plus/es')['ElTag'] + ElText: typeof import('element-plus/es')['ElText'] 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'] diff --git a/src/composables/drawer.js b/src/composables/drawer.js new file mode 100644 index 0000000..78aca97 --- /dev/null +++ b/src/composables/drawer.js @@ -0,0 +1,12 @@ +import { ref } from 'vue'; + +export function useDrawer() { + const drawer = ref(true); + function openDrawer() { + drawer.value = true; + } + function closeDrawer() { + drawer.value = false; + } + return { drawer ,openDrawer,closeDrawer}; +} diff --git a/src/views/fytz/user/UserEdit.vue b/src/views/fytz/user/UserEdit.vue index 174e18c..479bd47 100644 --- a/src/views/fytz/user/UserEdit.vue +++ b/src/views/fytz/user/UserEdit.vue @@ -15,12 +15,12 @@ <div class="sub-title">鐢ㄦ埛淇℃伅琛�</div> <FormCol> <!-- <CompUserInfos :form-info="formUserInfos" /> --> - <CompBaseInfo :form-info="formUserInfos"/> + <CompBaseInfo :form-info="formUserInfos" /> </FormCol> <el-divider /> <div class="sub-title">浼佷笟淇℃伅</div> <FormCol> - <!-- <CompPanyInfo :form-info="formVehicleBaseInfo" /> --> + <CompPanyInfo :form-info="formPanyInfo" /> </FormCol> <!-- <template v-if="formAnyInfo.typeid == 1"> <div class="sub-title">娌圭儫鍑�鍖栬缃�</div> @@ -52,9 +52,7 @@ </el-col> <el-col :span="6"> <el-row justify="end" align="middle" style="height: 80px"> - <el-button type="success" @click="drawer = true" - >鏂板璁惧</el-button - > + <el-button type="success" @click="drawer = true">鏂板璁惧</el-button> </el-row> </el-col> </el-row> @@ -74,14 +72,14 @@ <el-tab-pane label="琛屾斂澶勭綒" name="fourth"> <div class="sub-title">琛屾斂澶勭綒琛�</div> <FormCol> - <!-- <CompPunishment :form-info="formProblem" /> --> + <CompPunishment :table-info="formPunishment" /> </FormCol> </el-tab-pane> <el-tab-pane label="淇¤鎶曡瘔" name="fifth"> <div class="sub-title">淇¤鎶曡瘔</div> <FormCol> - <!-- <CompLaint :form-info="formLaint" /> --> + <CompComplaint :table-info="formComplaint" /> </FormCol> </el-tab-pane> @@ -98,9 +96,15 @@ <script> import userApi from '@/api/fytz/userApi'; +import punishmentApi from '@/api/fytz/punishmentApi'; +import lettersAndVisitsApi from '@/api/fytz/lettersAndVisitsApi'; + // import ComBaseInformation from '@/views/baseinfo/fytz/scene/ComBaseInformation.vue'; import CompUserInfo from './components/CompUserInfo.vue'; import CompBaseInfo from './components/CompBaseInfo.vue'; +import CompPanyInfo from './components/CompPanyInfo.vue'; +import CompPunishment from './components/CompPunishment.vue'; +import CompComplaint from './components/CompComplaint.vue'; // import CompLaint from '@/views/baseinfo/fytz/scene/CompLaint.vue'; // import CompDeviceInfo from "@/views/baseinfo/fytz/scene/CompDeviceInfo.vue"; // import CompPanyInfo from '@/views/baseinfo/fytz/scene/CompPanyInfo.vue'; @@ -119,6 +123,9 @@ // CompLaint, CompUserInfo, CompBaseInfo, + CompPanyInfo, + CompPunishment, + CompComplaint // CompDeviceInfo, // CompPanyInfo, // CompFumePurifyDevice, @@ -135,34 +142,45 @@ drawer: false, formUser: {}, // formSubScene: {}, - formLaint: {}, + formComplaint: [], // formDevice: {}, formPanyInfo: {}, formFumePurifyDevice: {}, formHazardousWasteFile: {}, formHazardousWasteRecord: {}, formProblem: {}, - formPunishment: {}, + formPunishment: [], formRestaurantBaseInfo: {}, formVehicleBaseInfo: {}, formUserInfos: {}, activeName: 'first', - scroll: '', + scroll: '' }; }, beforeRouteEnter(to, from, next) { userApi.fetchUserBaseInfo(to.params.userId).then((res) => { - next((vm) => { - if (res.userInfo) { - vm.formUser = res.userInfo; - } else { - vm.formUser = { - guid: to.params.userId, - }; - } - if(res.baseInfo){ - vm.formUserInfos = res.baseInfo - } + punishmentApi.fetchPunishment(to.params.userId).then((punish) => { + lettersAndVisitsApi.fetchLetterAndVisit(to.params.userId).then((letterAndVisit) => { + next((vm) => { + if (res.userInfo) { + vm.formUser = res.userInfo; + } else { + vm.formUser = { + guid: to.params.userId + }; + } + if (res.baseInfo) { + vm.formUserInfos = res.baseInfo; + } + if (res.company) { + vm.formPanyInfo = res.company; + } + + vm.formPunishment = punish; + + vm.formComplaint = letterAndVisit; + }); + }); }); }); }, @@ -173,8 +191,8 @@ // 鍥為��椤甸潰 onBack() { this.$router.back(); - }, - }, + } + } }; </script> <style scoped> diff --git a/src/views/fytz/user/components/CompBaseInfo.vue b/src/views/fytz/user/components/CompBaseInfo.vue index 67154ff..15b9472 100644 --- a/src/views/fytz/user/components/CompBaseInfo.vue +++ b/src/views/fytz/user/components/CompBaseInfo.vue @@ -95,20 +95,20 @@ } ] } - } + }; }, watch: { formInfo(nValue) { - this._formInfo = this.parseUserInfo(nValue) + this._formInfo = this.parseBaseInfo(nValue); }, _edit(nValue) { - this.$emit('update:isEdit', nValue) + this.$emit('update:isEdit', nValue); } }, mounted() {}, methods: { // 鐢ㄦ埛鍩烘湰淇℃伅鏍煎紡鍖� - parseUserInfo(s) { + parseBaseInfo(s) { s._locations = { pCode: s.biProvinceCode, pName: s.biProvinceName, @@ -118,50 +118,46 @@ dName: s.biDistrictName, tCode: s.biTownCode, tName: s.biTownName - } - return s + }; + return s; }, // 鍒涘缓鏂板満鏅� - createBaseInfo(formObj, func) { - - }, + createBaseInfo(formObj, func) {}, // 鏇存柊鍦烘櫙 - updateBaseInfo(formObj, func) { - - }, + updateBaseInfo(formObj, func) {}, submit(formObj, func) { // 琛屾斂鍖哄垝淇℃伅濉厖 - const a = formObj.value._locations + const a = formObj.value._locations; if ('pCode' in a) { - formObj.value.biProvinceCode = a.pCode + formObj.value.biProvinceCode = a.pCode; } if ('pName' in a) { - formObj.value.biProvinceName = a.pName + formObj.value.biProvinceName = a.pName; } if ('cCode' in a) { - formObj.value.biCityCode = a.cCode + formObj.value.biCityCode = a.cCode; } if ('cName' in a) { - formObj.value.biCityName = a.cName + formObj.value.biCityName = a.cName; } if ('dCode' in a) { - formObj.value.biDistrictCode = a.dCode + formObj.value.biDistrictCode = a.dCode; } if ('dName' in a) { - formObj.value.biDistrictName = a.dName + formObj.value.biDistrictName = a.dName; } if ('tCode' in a) { - formObj.value.biTownCode = a.tCode + formObj.value.biTownCode = a.tCode; } if ('tName' in a) { - formObj.value.biTownName = a.tName + formObj.value.biTownName = a.tName; } - return this.create ? this.createBaseInfo(formObj, func) : this.updateBaseInfo(formObj, func) + return this.create ? this.createBaseInfo(formObj, func) : this.updateBaseInfo(formObj, func); }, cancel() { - this.$emit('onCancel') + this.$emit('onCancel'); } } -} +}; </script> diff --git a/src/views/fytz/user/components/CompComplaint.vue b/src/views/fytz/user/components/CompComplaint.vue new file mode 100644 index 0000000..166a502 --- /dev/null +++ b/src/views/fytz/user/components/CompComplaint.vue @@ -0,0 +1,72 @@ +<template> + <CompComplaintList :table-data="tableInfo" @newly-add="add" @look="look"></CompComplaintList> + <CompComplaintDrawer v-model="drawer" :form-info="formInfo"></CompComplaintDrawer> +</template> + +<script> +import CompComplaintList from './CompComplaintList.vue'; +import CompComplaintDrawer from './CompComplaintDrawer.vue'; +import dayjs from 'dayjs'; +import { useDrawer } from '@/composables/drawer.js'; +export default { + props: { + //鍩烘湰淇℃伅 + tableInfo: { + type: Array, + default() { + return []; + } + }, + isEdit: Boolean, + create: { + type: Boolean, + default: false + }, + active: { + type: Boolean, + default: false + } + }, + components: { + CompComplaintList, + CompComplaintDrawer + }, + data() { + return { + formInfo: null, + drawer: false + }; + }, + setup() { + const { drawer, openDrawer, closeDrawer } = useDrawer(); + return { drawer, openDrawer, closeDrawer }; + }, + watch: {}, + mounted() {}, + methods: { + timeFormatter(row, column, cellValue) { + return dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss'); + }, + /** + * 鏂板鎸夐挳 + * @param锛� + * @returns锛� + */ + add() { + this.formInfo = {}; + this.openDrawer(); + }, + /** + * 鏌ョ湅鎸夐挳 + * @param锛� + * @returns锛� + */ + look(value) { + this.formInfo = value; + this.openDrawer(); + } + } +}; +</script> + +<style scoped></style> diff --git a/src/views/fytz/user/components/CompComplaintDrawer.vue b/src/views/fytz/user/components/CompComplaintDrawer.vue new file mode 100644 index 0000000..15cee87 --- /dev/null +++ b/src/views/fytz/user/components/CompComplaintDrawer.vue @@ -0,0 +1,110 @@ +<template> + <el-drawer v-model="drawer_" title="鏂板" direction="rtl"> + <FYForm + :form-info="_formInfo" + :rules="rules" + :reset="active" + :useReset="true" + v-model:is-edit="_edit" + @submit="submit" + @cancel="cancel" + > + <template #form-item="{ formObj }"> + <el-form-item label="搴楅摵鍚嶇О" prop="cpName"> + <el-input clearable v-model="formObj.cpName" placeholder="搴楅摵鍚嶇О" /> + </el-form-item> + <el-form-item label="鏃堕棿" prop="cpTime"> + <el-date-picker v-model="formObj.cpTime" type="datetime" placeholder="鏃堕棿" /> + </el-form-item> + <el-form-item label="鍘熷洜"> + <el-input clearable v-model="formObj.cpReason" placeholder="鍘熷洜" /> + </el-form-item> + <el-form-item label="鍛煎悂" prop="cpAppeal"> + <el-input clearable v-model="formObj.cpAppeal" placeholder="缁撴灉" /> + </el-form-item> + <el-form-item label="鏉ユ簮" prop="cpSource"> + <el-input clearable v-model="formObj.cpSource" placeholder="鏉ユ簮" /> + </el-form-item> + <el-form-item label="cpSceneid"> + <el-input clearable v-model="formObj.cpSceneid" placeholder="cpSceneid" /> + </el-form-item> + <el-form-item label="cpMediateTime"> + <el-date-picker + v-model="formObj.cpMediateTime" + type="datetime" + placeholder="cpMediateTime" + /> + </el-form-item> + <el-form-item label="璋冭В鍗曚綅"> + <el-input clearable v-model="formObj.cpMediateUnit" placeholder="璋冭В鍗曚綅" /> + </el-form-item> + + <el-form-item label="璋冭妭缁撴灉"> + <el-input clearable v-model="formObj.cpMediateResult" placeholder="璋冭妭缁撴灉" /> + </el-form-item> + + <el-form-item label="cpExtension1"> + <el-input clearable v-model="formObj.cpExtension1" placeholder="cpExtension1" /> + </el-form-item> + + <el-form-item label="cpExtension2"> + <el-input clearable v-model="formObj.cpExtension2" placeholder="cpExtension2" /> + </el-form-item> + + <el-form-item label="cpExtension3"> + <el-input clearable v-model="formObj.cpExtension3" placeholder="cpExtension3" /> + </el-form-item> + + <el-form-item label="cpRemark"> + <el-input clearable v-model="formObj.cpRemark" placeholder="cpRemark" /> + </el-form-item> + </template> + </FYForm> + </el-drawer> +</template> + +<script> +export default { + props: { + //鍩烘湰淇℃伅 + formInfo: Object, + + drawer: { + type: Boolean, + default: false + } + }, + emits: ['update:drawer'], + + data() { + return { + _drawerData: null, + drawer_: false, + _formInfo: null + }; + }, + + watch: { + formInfo(nValue) { + this._formInfo = nValue; + }, + drawer(nValue) { + this.drawer_ = nValue; + } + }, + mounted() {}, + methods: { + // 鍒涘缓鏂板満鏅� + createBaseInfo(formObj, func) {}, + // 鏇存柊鍦烘櫙 + updateBaseInfo(formObj, func) {}, + submit(formObj, func) { + return this.create ? this.createBaseInfo(formObj, func) : this.updateBaseInfo(formObj, func); + }, + cancel() { + this.$emit('onCancel'); + } + } +}; +</script> +<style scoped></style> diff --git a/src/views/fytz/user/components/CompComplaintList.vue b/src/views/fytz/user/components/CompComplaintList.vue new file mode 100644 index 0000000..0901f6e --- /dev/null +++ b/src/views/fytz/user/components/CompComplaintList.vue @@ -0,0 +1,84 @@ +<template> + <FYTable @search="onSearch" ref="tableRef"> + <template #table-column> + <el-table-column prop="cpName" label="搴楅摵鍚嶇О" width="90px" /> + <el-table-column prop="cpTime" label="鏃堕棿" :formatter="timeFormatter" width="145px" /> + <el-table-column prop="cpReason" label="鍘熷洜" show-overflow-tooltip width="245px" /> + <el-table-column prop="cpAppeal" label="鍛煎悂" show-overflow-tooltip width="345px" /> + <el-table-column prop="cpSource" label="鏉ユ簮" width="100px" /> + <el-table-column prop="cpSceneid" label="cpSceneid" width="150px" /> + <el-table-column + prop="cpMediateTime" + label="cpMediateTime" + :formatter="timeFormatter" + width="145px" + /> + <el-table-column prop="cpMediateUnit" label="璋冭В鍗曚綅" width="140px" /> + <el-table-column prop="cpMediateResult" label="璋冭妭缁撴灉" width="100px" /> + <el-table-column prop="cpExtension1" label="cpExtension1" width="120px" /> + <el-table-column prop="cpExtension2" label="cpExtension2" width="120px" /> + <el-table-column prop="cpExtension3" label="cpExtension3" width="120px" /> + <el-table-column prop="cpRemark" label="cpRemark" /> + + <el-table-column fixed="right" align="right" label="鎿嶄綔" width="160"> + <template #header> + <el-button icon="DocumentAdd" size="default" type="success" @click="add">鏂板</el-button> + </template> + <template #default="scope"> + <el-button type="primary" size="small" @click="look(scope)">鏌ョ湅</el-button> + </template> + </el-table-column> + </template> + </FYTable> +</template> + +<script> +import dayjs from 'dayjs'; +import { useDrawer } from '@/composables/drawer.js'; +export default { + props: { + tableData: { + type: Array, + default() { + return []; + } + } + }, + emits: ['newlyAdd', 'look'], + data() { + return {}; + }, + setup() { + const { drawer, openDrawer, closeDrawer } = useDrawer(); + return { drawer, openDrawer, closeDrawer }; + }, + mounted() { + this.search(); + }, + methods: { + onSearch(page, func) { + func({ + data: this.tableData, + total: this.tableData.length + }); + }, + search() { + this.$nextTick(() => { + this.$refs.tableRef.onSearch(); + }); + }, + timeFormatter(row, column, cellValue) { + return dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss'); + }, + + add() { + this.$emit('newlyAdd'); + }, + look(scope) { + this.$emit('look', scope.row); + } + } +}; +</script> + +<style scoped></style> diff --git a/src/views/fytz/user/components/CompPanyInfo.vue b/src/views/fytz/user/components/CompPanyInfo.vue new file mode 100644 index 0000000..e20b7fd --- /dev/null +++ b/src/views/fytz/user/components/CompPanyInfo.vue @@ -0,0 +1,262 @@ +<template> + <FYForm + :form-info="_formInfo" + :rules="rules" + :reset="active" + :useReset="true" + v-model:is-edit="_edit" + @submit="submit" + @cancel="cancel" + > + <template #form-item="{ formObj }"> + <el-form-item label="浼佷笟鍚�" prop="ciName"> + <el-input clearable v-model="formObj.ciName" placeholder="浼佷笟鍚�" /> + </el-form-item> + <el-form-item label="涓昏涓氬姟" prop="ciMainBusiness"> + <el-input clearable v-model="formObj.ciMainBusiness" placeholder="涓昏涓氬姟" /> + </el-form-item> + <el-form-item label="鍦板潃" prop="ciAddress"> + <el-input clearable v-model="formObj.ciAddress" placeholder="鍦板潃" /> + </el-form-item> + <el-form-item label="绀句細淇$敤浠g爜" prop="ciOrgCode"> + <el-input clearable v-model="formObj.ciOrgCode" placeholder="绀句細淇$敤浠g爜" /> + </el-form-item> + <el-form-item label="娉曚汉" prop="ciJuridicalPerson"> + <el-input clearable v-model="formObj.ciJuridicalPerson" placeholder="娉曚汉" /> + </el-form-item> + <el-form-item label="鍏徃鎴愮珛鏃ユ湡" prop="ciBuildDate"> + <el-date-picker v-model="formObj.ciBuildDate" type="datetime" placeholder="鍏徃鎴愮珛鏃ユ湡" /> + </el-form-item> + <el-form-item label="鑱旂郴浜�" prop="ciContactName"> + <el-input clearable v-model="formObj.ciContactName" placeholder="鑱旂郴浜�" /> + </el-form-item> + <el-form-item label="鑱旂郴鐢佃瘽" prop="ciTelephone"> + <el-input clearable v-model="formObj.ciTelephone" placeholder="鑱旂郴鐢佃瘽" /> + </el-form-item> + <el-form-item label="鏄惁璁よ瘉" prop="authentication"> + <el-switch v-model="formObj.authentication" /> + <span style="margin-left: 16px">{{ formObj.authentication ? '宸茶璇�' : '鏈璇�' }}</span> + </el-form-item> + + <FYOptionLocation + :allOption="true" + :level="4" + :initValue="false" + v-model:value="formObj._locations" + ></FYOptionLocation> + + <el-form-item label="鑱旂郴浜哄井淇�" prop="ciContactsWx"> + <el-input clearable v-model="formObj.ciContactsWx" placeholder="鑱旂郴浜哄井淇�" /> + </el-form-item> + <el-form-item label="ciEiaApprovalDate" prop="ciEiaApprovalDate"> + <el-input clearable v-model="formObj.ciEiaApprovalDate" placeholder="ciEiaApprovalDate" /> + </el-form-item> + <el-form-item label="閭" prop="ciEmail"> + <el-input clearable v-model="formObj.ciEmail" placeholder="閭" /> + </el-form-item> + <el-form-item label="ciExpansionDate" prop="ciExpansionDate"> + <el-input + clearable + v-model="formObj.ciExpansionDate" + placeholder="ciExpansionDate" + /> </el-form-item + ><el-form-item label="ciExtension1" prop="ciExtension1"> + <el-input + clearable + v-model="formObj.ciExtension1" + placeholder="ciExtension1" + /> </el-form-item + ><el-form-item label="ciExtension2" prop="ciExtension2"> + <el-input clearable v-model="formObj.ciExtension2" placeholder="ciExtension2" /> + </el-form-item> + <el-form-item label="浼犵湡" prop="ciFax"> + <el-input clearable v-model="formObj.ciFax" placeholder="浼犵湡" /> + </el-form-item> + <el-form-item label="ciIndClassification" prop="ciIndClassification"> + <el-input + clearable + v-model="formObj.ciIndClassification" + placeholder="ciIndClassification" + /> + </el-form-item> + <el-form-item label="ciIndDistrict" prop="ciIndDistrict"> + <el-input clearable v-model="formObj.ciIndDistrict" placeholder="ciIndDistrict" /> + </el-form-item> + <el-form-item label="ciIndustryCode" prop="ciIndustryCode"> + <el-input clearable v-model="formObj.ciIndustryCode" placeholder="ciIndustryCode" /> + </el-form-item> + <el-form-item label="缁村害" prop="ciLatitude"> + <el-input clearable v-model="formObj.ciLatitude" placeholder="缁村害" /> + </el-form-item> + <el-form-item label="缁忓害" prop="ciLongitude"> + <el-input clearable v-model="formObj.ciLongitude" placeholder="缁忓害" /> + </el-form-item> + + <el-form-item label="ciMemberGroup" prop="ciMemberGroup"> + <el-input clearable v-model="formObj.ciMemberGroup" placeholder="ciMemberGroup" /> + </el-form-item> + <el-form-item label="ciPltPermitCode" prop="ciPltPermitCode"> + <el-input clearable v-model="formObj.ciPltPermitCode" placeholder="ciPltPermitCode" /> + </el-form-item> + <el-form-item label="ciPostalCode" prop="ciPostalCode"> + <el-input clearable v-model="formObj.ciPostalCode" placeholder="ciPostalCode" /> + </el-form-item> + + <el-form-item label="娉ㄥ唽璧勬湰" prop="ciRegisteredCapital"> + <el-input clearable v-model="formObj.ciRegisteredCapital" placeholder="娉ㄥ唽璧勬湰" /> + </el-form-item> + <el-form-item label="娉ㄥ唽绫诲瀷" prop="ciRegistrationType"> + <el-input clearable v-model="formObj.ciRegistrationType" placeholder="娉ㄥ唽绫诲瀷" /> + </el-form-item> + <el-form-item label="ciRemark" prop="ciRemark"> + <el-input clearable v-model="formObj.ciRemark" placeholder="ciRemark" /> + </el-form-item> + <el-form-item label="ciScale" prop="ciScale"> + <el-input clearable v-model="formObj.ciScale" placeholder="ciScale" /> + </el-form-item> + <el-form-item label="ciTradingFiles" prop="ciTradingFiles"> + <el-input clearable v-model="formObj.ciTradingFiles" placeholder="ciTradingFiles" /> + </el-form-item> + <el-form-item label="鍛樺伐鏁伴噺" prop="ciWorkersNumber"> + <el-input clearable v-model="formObj.ciWorkersNumber" placeholder="鍛樺伐鏁伴噺" /> + </el-form-item> + </template> + </FYForm> +</template> + +<script> +export default { + props: { + //鍩烘湰淇℃伅 + formInfo: Object, + isEdit: Boolean, + create: { + type: Boolean, + default: false + }, + active: { + type: Boolean, + default: false + } + }, + data() { + return { + _formInfo: null, + _edit: false, + rules: { + ciName: [ + { + required: true, + message: '浼佷笟鍚嶄笉鑳戒负绌�', + trigger: 'blur' + } + ], + ciJuridicalPerson: [ + { + required: true, + message: '娉曚汉涓嶈兘涓虹┖', + trigger: 'blur' + } + ], + ciAddress: [ + { + required: true, + message: '鍦板潃涓嶈兘涓虹┖', + trigger: 'blur' + } + ], + ciOrgCode: [ + { + required: true, + message: '绀句細淇$敤浠g爜涓嶈兘涓虹┖', + trigger: 'blur' + } + ], + ciContactName: [ + { + required: true, + message: '鑱旂郴浜轰笉鑳戒负绌�', + trigger: 'blur' + } + ], + ciTelephone: [ + { + required: true, + message: '鑱旂郴鐢佃瘽涓嶈兘涓虹┖', + trigger: 'blur' + } + ] + } + }; + }, + watch: { + formInfo(nValue) { + this._formInfo = this.parsePanyInfo(nValue); + }, + _edit(nValue) { + this.$emit('update:isEdit', nValue); + } + }, + mounted() {}, + methods: { + // 鐢ㄦ埛鍩烘湰淇℃伅鏍煎紡鍖� + parsePanyInfo(s) { + // 琛屾斂鍖哄垝淇℃伅 + s._locations = { + pCode: s.ciProvinceCode, + pName: s.ciProvinceName, + cCode: s.ciCityCode, + cName: s.ciCityName, + dCode: s.ciDistrictCode, + dName: s.ciDistrictName, + tCode: s.ciTownCode, + tName: s.ciTownName + }; + // 璁よ瘉淇℃伅 + s.authentication = s.ciExtension3 == 'authenticated'; + + return s; + }, + // 鍒涘缓鏂板満鏅� + createPanyInfo(formObj, func) {}, + // 鏇存柊鍦烘櫙 + updatePanyInfo(formObj, func) {}, + submit(formObj, func) { + const a = formObj.value._locations; + if ('pCode' in a) { + formObj.value.ciProvinceCode = a.pCode; + } + if ('pName' in a) { + formObj.value.ciProvinceName = a.pName; + } + if ('cCode' in a) { + formObj.value.ciCityCode = a.cCode; + } + if ('cName' in a) { + formObj.value.ciCityName = a.cName; + } + if ('dCode' in a) { + formObj.value.ciDistrictCode = a.dCode; + } + if ('dName' in a) { + formObj.value.ciDistrictName = a.dName; + } + if ('tCode' in a) { + formObj.value.ciTownCode = a.tCode; + } + if ('tName' in a) { + formObj.value.ciTownName = a.tName; + } + // 鏄惁璁よ瘉淇℃伅濉厖 + formObj.value.authentication + ? (formObj.value.ciExtension3 = 'authenticated') + : (formObj.value.ciExtension3 = 'unAuthenticated'); + return this.create ? this.createPanyInfo(formObj, func) : this.updatePanyInfo(formObj, func); + }, + + cancel() { + this.$emit('onCancel'); + } + } +}; +</script> diff --git a/src/views/fytz/user/components/CompPunishment.vue b/src/views/fytz/user/components/CompPunishment.vue new file mode 100644 index 0000000..cb6814c --- /dev/null +++ b/src/views/fytz/user/components/CompPunishment.vue @@ -0,0 +1,71 @@ +<template> + <CompPunishmentList :table-data="tableInfo" @newly-add="add" @look="look"></CompPunishmentList> + <CompPunishmentDrawer v-model="drawer" :form-info="formInfo"></CompPunishmentDrawer> +</template> + +<script> +import CompPunishmentList from './CompPunishmentList.vue'; +import CompPunishmentDrawer from './CompPunishmentDrawer.vue'; +import dayjs from 'dayjs'; +import { useDrawer } from '@/composables/drawer.js'; +export default { + props: { + //鍩烘湰淇℃伅 + tableInfo: { + type: Array, + default() { + return []; + } + }, + isEdit: Boolean, + create: { + type: Boolean, + default: false + }, + active: { + type: Boolean, + default: false + } + }, + components: { + CompPunishmentList, + CompPunishmentDrawer + }, + data() { + return { + formInfo: null + }; + }, + setup() { + const { drawer, openDrawer, closeDrawer } = useDrawer(); + return { drawer, openDrawer, closeDrawer }; + }, + watch: {}, + mounted() {}, + methods: { + timeFormatter(row, column, cellValue) { + return dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss'); + }, + /** + * 鏂板鎸夐挳 + * @param锛� + * @returns锛� + */ + add() { + this.formInfo = {}; + this.openDrawer(); + }, + /** + * 鏌ョ湅鎸夐挳 + * @param锛� + * @returns锛� + */ + look(value) { + this.formInfo = value; + this.openDrawer(); + } + } +}; +</script> + +<style scoped></style> diff --git a/src/views/fytz/user/components/CompPunishmentDrawer.vue b/src/views/fytz/user/components/CompPunishmentDrawer.vue new file mode 100644 index 0000000..e6173ca --- /dev/null +++ b/src/views/fytz/user/components/CompPunishmentDrawer.vue @@ -0,0 +1,98 @@ +<template> + <el-drawer v-model="drawer_" title="鏂板" direction="rtl"> + <FYForm + :form-info="_formInfo" + :rules="rules" + :reset="active" + :useReset="true" + v-model:is-edit="_edit" + @submit="submit" + @cancel="cancel" + > + <template #form-item="{ formObj }"> + <el-form-item label="澶勭綒鍚嶇О" prop="pmName"> + <el-input clearable v-model="formObj.pmName" placeholder="澶勭綒鍚嶇О" /> + </el-form-item> + <el-form-item label="鏃堕棿" prop="pmTime"> + <el-date-picker v-model="formObj.pmTime" type="datetime" placeholder="鏃堕棿" /> + </el-form-item> + <el-form-item label="鍘熷洜"> + <el-input clearable v-model="formObj.pmReason" placeholder="鍘熷洜" /> + </el-form-item> + + <el-form-item label="缁撴灉" prop="biName"> + <el-input clearable v-model="formObj.pmResult" placeholder="缁撴灉" /> + </el-form-item> + + <el-form-item label="閮ㄩ棬" prop="biAddress"> + <el-input clearable v-model="formObj.pmDepartment" placeholder="閮ㄩ棬" /> + </el-form-item> + + <el-form-item label="pmBasis"> + <el-input clearable v-model="formObj.pmBasis" placeholder="pmBasis" /> + </el-form-item> + <el-form-item label="pmSceneId"> + <el-input clearable v-model="formObj.pmSceneId" placeholder="pmSceneId" /> + </el-form-item> + <el-form-item label="pmExtension1"> + <el-input clearable v-model="formObj.pmExtension1" placeholder="pmExtension1" /> + </el-form-item> + <el-form-item label="pmExtension2"> + <el-input clearable v-model="formObj.pmExtension2" placeholder="pmExtension2" /> + </el-form-item> + <el-form-item label="pmExtension3"> + <el-input clearable v-model="formObj.pmExtension3" placeholder="pmExtension3" /> + </el-form-item> + <el-form-item> + <el-input clearable v-model="formObj.pmRemark" placeholder="pmRemark" /> + </el-form-item> + </template> + </FYForm> + </el-drawer> +</template> + +<script> +export default { + props: { + //鍩烘湰淇℃伅 + formInfo: Object, + + drawer: { + type: Boolean, + default: false + } + }, + emits: ['update:drawer'], + + data() { + return { + _drawerData: null, + drawer_: false, + _formInfo: null + }; + }, + + watch: { + formInfo(nValue) { + this._formInfo = nValue; + }, + drawer(nValue) { + this.drawer_ = nValue; + } + }, + mounted() {}, + methods: { + // 鍒涘缓鏂板満鏅� + createBaseInfo(formObj, func) {}, + // 鏇存柊鍦烘櫙 + updateBaseInfo(formObj, func) {}, + submit(formObj, func) { + return this.create ? this.createBaseInfo(formObj, func) : this.updateBaseInfo(formObj, func); + }, + cancel() { + this.$emit('onCancel'); + } + } +}; +</script> +<style scoped></style> diff --git a/src/views/fytz/user/components/CompPunishmentList.vue b/src/views/fytz/user/components/CompPunishmentList.vue new file mode 100644 index 0000000..3b31628 --- /dev/null +++ b/src/views/fytz/user/components/CompPunishmentList.vue @@ -0,0 +1,86 @@ +<template> + <!-- <el-table :data="tableData" border> + <slot name="column" ></slot> + </el-table> --> + <FYTable @search="onSearch" ref="tableRef"> + <template #table-column> + <el-table-column prop="pmName" label="澶勭綒鍚嶇О" show-overflow-tooltip width="170px" /> + <el-table-column prop="pmTime" label="鏃堕棿" :formatter="timeFormatter" width="145px" /> + <el-table-column prop="pmReason" label="鍘熷洜" show-overflow-tooltip width="300px"/> + <el-table-column prop="pmResult" label="缁撴灉" show-overflow-tooltip width="130px" /> + <el-table-column prop="pmDepartment" label="閮ㄩ棬" width="250px" /> + <el-table-column prop="pmBasis" label="Address" /> + <el-table-column prop="pmSceneId" label="pmSceneId" width="150px"/> + <el-table-column prop="pmExtension1" label="pmExtension1" width="120px" /> + <el-table-column prop="pmExtension2" label="pmExtension2" width="120px" /> + <el-table-column prop="pmExtension3" label="pmExtension3" width="120px" /> + <el-table-column prop="pmRemark" label="pmRemark" width="100px"/> + <el-table-column fixed="right" align="right" label="鎿嶄綔" width="160"> + <template #header> + <el-button icon="DocumentAdd" size="default" type="success" @click="add" + >鏂板</el-button + > + </template> + <template #default="scope"> + <el-button + type="primary" + size="small" + @click="look(scope)" + >鏌ョ湅</el-button + > + </template> + </el-table-column> + </template> + </FYTable> +</template> + +<script> +import dayjs from 'dayjs'; +import { useDrawer } from '@/composables/drawer.js'; +export default { + props: { + tableData: { + type: Array, + default() { + return []; + } + } + }, + emits: ['newlyAdd','look'], + data() { + return {}; + }, + setup() { + const { drawer,openDrawer, closeDrawer } = useDrawer(); + return { drawer, openDrawer, closeDrawer }; + }, + mounted() { + this.search(); + }, + methods: { + onSearch(page, func) { + func({ + data: this.tableData, + total: this.tableData.length + }); + }, + search() { + this.$nextTick(() => { + this.$refs.tableRef.onSearch(); + }); + }, + timeFormatter(row, column, cellValue) { + return dayjs(cellValue).format('YYYY-MM-DD HH:mm:ss'); + }, + + add(){ + this.$emit('newlyAdd') + }, + look(scope){ + this.$emit('look',scope.row) + } + } +}; +</script> + +<style scoped></style> -- Gitblit v1.9.3