From b1280e8d76322df49dce77d2d22a716809088267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BD=97=E6=B5=AE?= <513711440@qq.com> Date: Wed, 9 Aug 2023 16:06:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=81=94=E8=B0=83=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/api.js | 40 +- src/views/benefiting/SettlementDetails.vue | 6 +- src/views/dashboard/Analysis.vue | 1 - src/views/dashboard/IndexChart.vue | 119 ++--- src/views/shops/ShopsDetails.vue | 422 ++++++------------ src/views/shops/ShopsList.vue | 128 +++--- .../shops/modules/SelectCommunityModal.vue | 2 +- src/views/shops/modules/SelectShopsModal.vue | 66 ++- 8 files changed, 283 insertions(+), 501 deletions(-) diff --git a/src/api/api.js b/src/api/api.js index 243f5f7..7de5b64 100644 --- a/src/api/api.js +++ b/src/api/api.js @@ -2,8 +2,13 @@ import { getAction, deleteAction, putAction, postAction, httpAction } from '@/ap import Vue from 'vue' import {UI_CACHE_DB_DICT_DATA } from "@/store/mutation-types" +//商铺 +const partnersShopByDepId = (params)=>getAction("/property-central/partners/partnersShop/queryById",params); +const partnersShopAudit = (params)=>postAction("/property-central/partners/partnersShop/audit",params); +const partnersShopOperateApi = (params)=>getAction(`/property-central/partners/partnersShop/operate/${params.id}/${params.status}`,{}); + // é¦–é¡µç»Ÿè®¡æ•°æ® -const getDataStatisticsApi = (params)=>getAction("/property-central/central/homepage/dataStatistics",params); +const getDataStatisticsApi = (params)=>getAction("/property-central/partners/partnersInfo/statistics",params); //è§’è‰²ç®¡ç† const addRole = (params)=>postAction("/sys/role/add",params); @@ -103,23 +108,10 @@ export const transitRESTful = { http: (url, parameter) => httpAction(getTransitURL(url), parameter), } -//å…¥é©»ç®¡ç† -const getPropertyListApi = (params)=>getAction("/property-central/property/propertySettled/list",params); -const getPropertyDetailApi = (params)=>getAction("/property-central/property/propertySettled/queryById",params); -const AddUpdatePropertyApi = (params)=>postAction("/property-central/property/propertySettled/add",params); -const auditPropertyApi = (params)=>postAction("/property-central/property/propertySettled/audit",params); -const freezeOrPropertyApi = (params)=>getAction(`/property-central/property/propertySettled/freezeOrThaw/${params.id}/${params.status}`,{}); - -//è´¹ç”¨ç®¡ç† -const getCostListApi = (params)=>getAction("/property-central/property/propertyChargrule/list",params); -const getCostDetailApi = (params)=>getAction("/property-central/property/propertyChargrule/queryById",params); -const AddUpdateCostApi = (params)=>postAction("/property-central/property/propertyChargrule/add",params); -const AuditUpdateCostApi = (params)=>postAction("/property-central/property/propertyChargrule/audit",params); -const getPropertyChargruleListApi = (params)=>getAction("/property-central/property/propertyChargrule/propertyChargruleList",params); - -const getPropertyAdvEditApi = (params)=>postAction("/property-central/property/propertyAdv/edit",params); -const proPertyChargruleApi = (params)=>getAction(`/property-central/property/propertyChargrule/freezeOrThaw/${params.id}/${params.status}`,{}); export { + partnersShopByDepId, + partnersShopAudit, + partnersShopOperateApi, getDataStatisticsApi, addRole, editRole, @@ -176,19 +168,7 @@ export { saveDeptRolePermission, queryMyDepartTreeList, getUserNoticeInfo, - getDictItemsFromCache, - getPropertyListApi, - getPropertyDetailApi, - AddUpdatePropertyApi, - auditPropertyApi, - freezeOrPropertyApi, - getCostListApi, - getCostDetailApi, - AddUpdateCostApi, - AuditUpdateCostApi, - getPropertyChargruleListApi, - getPropertyAdvEditApi, - proPertyChargruleApi + getDictItemsFromCache } diff --git a/src/views/benefiting/SettlementDetails.vue b/src/views/benefiting/SettlementDetails.vue index 9356c6a..0d28eb1 100644 --- a/src/views/benefiting/SettlementDetails.vue +++ b/src/views/benefiting/SettlementDetails.vue @@ -62,7 +62,7 @@ <script> const mapZoom = [5, 8, 10, 12] let timer = null -import { getPropertyChargruleListApi, getPropertyDetailApi, auditPropertyApi } from '@/api/api' +import { auditPropertyApi } from '@/api/api' import { httpAction, getAction } from '@/api/manage' import { JeecgListMixin } from '@/mixins/JeecgListMixin' @@ -221,11 +221,11 @@ export default { }, methods: { async onLoadCostList() { - let data = await getPropertyChargruleListApi() + //let data = await getPropertyChargruleListApi() this.costList = data.result }, async getPageDetail() { - let { result } = await getPropertyDetailApi({ id: this.$route.query.id }) + //let { result } = await getPropertyDetailApi({ id: this.$route.query.id }) this.edit(result) if (result.provinceName) { this.getLongitude( diff --git a/src/views/dashboard/Analysis.vue b/src/views/dashboard/Analysis.vue index 219292b..dcc9231 100644 --- a/src/views/dashboard/Analysis.vue +++ b/src/views/dashboard/Analysis.vue @@ -6,7 +6,6 @@ <template> <div> <index-chart v-if="indexStyle==1"></index-chart> - 111 <!-- <div style="width: 100%;text-align: right;margin-top: 20px"> è¯·é€‰æ‹©é¦–é¡µæ ·å¼ï¼š <a-radio-group v-model="indexStyle"> diff --git a/src/views/dashboard/IndexChart.vue b/src/views/dashboard/IndexChart.vue index 3153fa2..b888aee 100644 --- a/src/views/dashboard/IndexChart.vue +++ b/src/views/dashboard/IndexChart.vue @@ -6,9 +6,9 @@ <div class="icon" style="color:#1890ff;"><a-icon type="shop" /></div> <div> <p style="color:#666;margin-bottom:5px;">绑定商铺数é‡</p> - <p style="margin-bottom:0;color:#333;font-size:28px;line-height:1;">{{statistical.settledNum}} - <span><a-icon type="arrow-up" - color="#1890ff" />{{ statistical.monthSettledNum }}</span> + <p style="margin-bottom:0;color:#333;font-size:28px;line-height:1;">{{statistical.shopCount || 0}} + <!-- <span><a-icon type="arrow-up" + color="#1890ff" />{{ statistical.monthSettledNum }}</span> --> </p> </div> </div> @@ -18,7 +18,8 @@ <div class="icon" style="color:#7262fd;"><a-icon type="pie-chart" /></div> <div> <p style="color:#666;margin-bottom:5px;">累积分利</p> - <p style="margin-bottom:0;color:#333;font-size:28px;line-height:1;">{{statistical.communityNum}}</p> + <p style="margin-bottom:0;color:#333;font-size:28px;line-height:1;">{{statistical.totalDivideProfits || 0}} + </p> </div> </div> </a-col> @@ -27,7 +28,8 @@ <div class="icon" style="color:#ffaa00;"><a-icon type="bar-chart" /></div> <div> <p style="color:#666;margin-bottom:5px;">待对账金é¢</p> - <p style="margin-bottom:0;color:#333;font-size:28px;line-height:1;">{{statistical.communityNum}}</p> + <p style="margin-bottom:0;color:#333;font-size:28px;line-height:1;">{{statistical.totalReconciliation || 0}} + </p> </div> </div> </a-col> @@ -36,19 +38,19 @@ <div class="icon" style="color:#52c41a;"><a-icon type="line-chart" /></div> <div> <p style="color:#666;margin-bottom:5px;">待结算金é¢</p> - <p style="margin-bottom:0;color:#333;font-size:28px;line-height:1;">{{statistical.ownerNum}} + <p style="margin-bottom:0;color:#333;font-size:28px;line-height:1;">{{statistical.totalBalance || 0}} </p> </div> </div> </a-col> </a-row> <div class="wait-box" style="margin-bottom: 25px;"> - <h3 class="box-title">待处ç†äº‹åŠ¡ï¼ˆå•†é“ºå¾…å®¡æ ¸ï¼‰</h3> + <h3 class="box-title">待处ç†äº‹åŠ¡ï¼ˆç»‘å®šå•†é“ºå¾…å®¡æ ¸ï¼‰</h3> <div class="content" v-if="waitAuditList.length > 0"> <div class="item" v-for="(item, index) in waitAuditList" :key="index"> - <p>商铺å称:{{ item.propertyName }}</p> - <p>所属å°åŒºï¼š{{ item.empowerCommunityNum }}</p> - <p>å…³è”æˆ¿å±‹ï¼š{{ item.createBy }}</p> + <p>商铺å称:{{ item.shopName }}</p> + <p>所属å°åŒºï¼š{{ item.communityName }}</p> + <p>å…³è”æˆ¿å±‹ï¼š{{ item.shopInfo.buildName + item.shopInfo.roomName }}</p> <p>æ·»åŠ æ—¶é—´ï¼š{{ item.createTime }}</p> <a-button type="primary" size="small" @click="toOperation(item)">å®¡æ ¸</a-button> </div> @@ -68,101 +70,52 @@ <script> import * as echarts from 'echarts' import chinaData from '@/assets/china.json' //地图包 -import ChartCard from '@/components/ChartCard' -import ACol from 'ant-design-vue/es/grid/Col' -import ATooltip from 'ant-design-vue/es/tooltip/Tooltip' -import MiniArea from '@/components/chart/MiniArea' -import MiniBar from '@/components/chart/MiniBar' -import MiniProgress from '@/components/chart/MiniProgress' -import RankList from '@/components/chart/RankList' -import Bar from '@/components/chart/Bar' -import LineChartMultid from '@/components/chart/LineChartMultid' -import HeadInfo from '@/components/tools/HeadInfo.vue' - -import Trend from '@/components/Trend' -import { getDataStatisticsApi, getLoginfo, getVisitInfo, auditPropertyApi } from '@/api/api' +import { getDataStatisticsApi } from '@/api/api' +import { getAction } from '@/api/manage' -const rankList = [] -for (let i = 0; i < 7; i++) { - rankList.push({ - name: '白é¹å²› ' + (i + 1) + ' å·åº—', - total: 1234.56 - i * 100, - }) -} -const barData = [] -for (let i = 0; i < 12; i += 1) { - barData.push({ - x: `${i + 1}月`, - y: Math.floor(Math.random() * 1000) + 200, - }) -} export default { name: 'IndexChart', - components: { - ATooltip, - ACol, - ChartCard, - MiniArea, - MiniBar, - MiniProgress, - RankList, - Bar, - Trend, - LineChartMultid, - HeadInfo, - }, + components: {}, data() { return { statistical: {}, mapData: [], waitAuditList: [], loading: true, - center: null, - rankList, - barData, - loginfo: {}, - visitFields: ['ip', 'visit'], - visitInfo: [], - indicator: <a-icon type="loading" style="font-size: 24px" spin />, + ipagination: { + pageNo: 1, + pageSize: 50, + auditTatus: 'waitAudit', + }, + url: { + list: '/property-central/partners/partnersShop/list', + }, } }, created() { setTimeout(() => { this.loading = !this.loading }, 1000) - this.initLogInfo() this.getDataStatistics() }, methods: { - initLogInfo() { - getLoginfo(null).then((res) => { - if (res.success) { - Object.keys(res.result).forEach((key) => { - res.result[key] = res.result[key] + '' - }) - this.loginfo = res.result - } - }) - getVisitInfo().then((res) => { + async getDataStatistics() { + getAction(this.url.list, this.ipagination).then((res) => { if (res.success) { - this.visitInfo = res.result + this.waitAuditList = res.result.records } }) - }, - async getDataStatistics() { let { result } = await getDataStatisticsApi() this.statistical = { - settledNum: result.settledNum, - communityNum: result.communityNum, - ownerNum: result.ownerNum, - monthOwnerNum: result.monthOwnerNum, - monthSettledNum: result.monthSettledNum, + shopCount: result.shopCount, + totalBalance: result.totalBalance, + totalDivideProfits: result.totalDivideProfits, + totalReconciliation: result.totalReconciliation, } - this.waitAuditList = result.waitAuditList this.mapData = - result.propertySettledList.map((item) => { + result.voList.map((item) => { return { - name: item.propertyName, + name: item.shopName, value: [item.longitude, item.latitude], text: { ...item }, } @@ -190,10 +143,8 @@ export default { trigger: 'item', formatter: function (params) { return `商铺å称:${params.data.name} - </br>商铺地å€ï¼š${params.data.text.addressInfo} - </br>è”系人:${params.data.text.contactName} - </br>è”系电è¯ï¼š${params.data.text.contactPhone} - </br>äº¤æ˜“è®¢å•æ•°é‡ï¼š${params.data.text.ontrialCommunityNum || 0}` + </br>绑定时间:${params.data.text.createTime} + </br>äº¤æ˜“è®¢å•æ•°é‡ï¼š${params.data.text.orderCount || 0}` }, borderColor: '#fff', textStyle: { @@ -224,7 +175,7 @@ export default { // è¦æ˜¾ç¤ºçš„æ•£ç‚¹æ•°æ® series: [ { - name: '社区分布数é‡å›¾', + name: '分布数é‡å›¾', type: 'scatter', coordinateSystem: 'geo', //è®¾ç½®åæ ‡ç³»ä¸º geo data: this.mapData, diff --git a/src/views/shops/ShopsDetails.vue b/src/views/shops/ShopsDetails.vue index b3d24e4..ee6d487 100644 --- a/src/views/shops/ShopsDetails.vue +++ b/src/views/shops/ShopsDetails.vue @@ -3,67 +3,64 @@ <div class="title-top"> <h3>{{title}}</h3> <div class="button"><a-button @click="toReturn">返回</a-button> - <a-button type="primary" @click="submitForm" v-if="pageType == 'edit' || pageType == 'add' ">ä¿å˜</a-button> + <a-button type="primary" @click="submitForm" v-if="pageType == 'add' ">ä¿å˜</a-button> <a-button type="danger" @click="onExamine(2)" v-if="pageType == 'audit'">å®¡æ ¸é©³å›ž</a-button> <a-button type="primary" @click="onExamine(1)" v-if="pageType == 'audit'">å®¡æ ¸é€šè¿‡</a-button> </div> </div> - <j-form-container :disabled="pageType=='detail'"> + <j-form-container :disabled="pageType!='add'"> <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> - <a-card title="åˆä½œä¼™ä¼´åŸºæœ¬ä¿¡æ¯"> + <a-card title="绑定商铺基本信æ¯"> <a-row> <a-col :span="12"> - <a-form-model-item label="选择å°åŒº" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="community"> - <a-input v-model="model.community" placeholder="请选择å°åŒº" read-only> + <a-form-model-item label="选择å°åŒº" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="communityName"> + <a-input v-model="model.communityName" placeholder="请选择å°åŒº" read-only> <a-icon slot="addonAfter" type="search" @click="chooseCommunity()" /> </a-input> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="å…³è”æˆ¿å±‹" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="housing"> - <a-input v-model="model.housing" placeholder="è¯·é€‰æ‹©å…³è”æˆ¿å±‹" read-only></a-input> - </a-form-model-item> - </a-col> - <a-col :span="12"> - <a-form-model-item label="选择商铺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="propertyName"> - <a-input v-model="model.propertyName" placeholder="请选择商铺" read-only> + <a-form-model-item label="选择商铺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="shopName"> + <a-input v-model="model.shopName" placeholder="请选择商铺" read-only> <a-icon slot="addonAfter" type="search" @click="chooseShops()" /> </a-input> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="统一信用代ç " :labelCol="labelCol" :wrapperCol="wrapperCol" prop="creditCode"> - <a-input v-model="model.creditCode" placeholder="请输入统一信用代ç " disabled></a-input> + <a-form-model-item label="å…³è”æˆ¿å±‹" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-model="shopsInfo.roomName" placeholder="è¯·é€‰æ‹©å…³è”æˆ¿å±‹" disabled></a-input> + </a-form-model-item> + </a-col> + <a-col :span="12"> + <a-form-model-item label="统一信用代ç " :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-model="shopsInfo.creditCode" placeholder="请输入统一信用代ç " disabled></a-input> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="è”系人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="contactName"> - <a-input v-model="model.contactName" placeholder="请输入è”系人" disabled></a-input> + <a-form-model-item label="è”系人" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-model="shopsInfo.contactName" placeholder="请输入è”系人" disabled></a-input> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="è”系人电è¯" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="contactPhone"> - <a-input @blur="contactPhoneChange" v-model="model.contactPhone" placeholder="请输入è”系人电è¯" - disabled></a-input> + <a-form-model-item label="è”系人电è¯" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-model="shopsInfo.contactPhone" placeholder="请输入è”系人电è¯" disabled></a-input> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="法人姓å" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="legalName"> - <a-input v-model="model.legalName" placeholder="请输入法人姓å" disabled></a-input> + <a-form-model-item label="法人姓å" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-model="shopsInfo.legalName" placeholder="请输入法人姓å" disabled></a-input> </a-form-model-item> </a-col> <a-col :span="12"> - <a-form-model-item label="注册地å€" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="registAdress"> - <area-cascader v-model="model.registAdress" :data="pcaa" :level="1" type="all" @change="addressChange" - style="width:100%" disabled /> + <a-form-model-item label="注册地å€" :labelCol="labelCol" :wrapperCol="wrapperCol"> + <a-input v-model="shopsInfo.registAdress" placeholder="注册地å€" disabled></a-input> </a-form-model-item> </a-col> <a-col :span="24"> - <a-form-model-item label="详细地å€" :labelCol="{ xs:{ span: 24 }, sm:{ span: 3 } }" :wrapperCol="wrapperCol" - prop="addressInfo"> - <a-input v-model="model.addressInfo" placeholder="请输入详细地å€" @blur="addressBlur" disabled></a-input> + <a-form-model-item label="详细地å€" :labelCol="{ xs:{ span: 24 }, sm:{ span: 3 } }" :wrapperCol="wrapperCol"> + <a-input v-model="shopsInfo.addressInfo" placeholder="请输入详细地å€" disabled></a-input> </a-form-model-item> </a-col> <a-col :span="24"> @@ -74,83 +71,36 @@ </a-form-model-item> </a-col> <a-col :span="24"> - <a-form-model-item label="商铺logo" :labelCol="{ xs:{ span: 24 }, sm:{ span: 3 } }" :wrapperCol="wrapperCol" - prop="logoUrl"> - <j-image-upload bizPath="scott/pic" v-model="model.logoUrl" disabled></j-image-upload> - </a-form-model-item> - </a-col> - <a-col :span="24"> - <a-form-model-item label="商铺介ç»" :labelCol="{ xs:{ span: 24 }, sm:{ span: 3 } }" :wrapperCol="wrapperCol" - prop="groupInfo"> - <a-textarea v-model="model.groupInfo" placeholder="请输入集团介ç»" :auto-size="{ minRows: 3, maxRows: 5 }" - disabled /> + <a-form-model-item label="商铺介ç»" :labelCol="{ xs:{ span: 24 }, sm:{ span: 3 } }" :wrapperCol="wrapperCol"> + <a-textarea v-model="shopsInfo.shopContent" placeholder="请输入集团介ç»" + :auto-size="{ minRows: 3, maxRows: 5 }" disabled /> </a-form-model-item> </a-col> </a-row> </a-card> - <!-- <a-card title="授æƒä¿¡æ¯"> - <a-row> - <a-col :span="12"> - <a-form-model-item label="试用日期" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="empowerType"> - <a-range-picker v-model="model.empowerDate" placeholder="请选择试用日期" /> - </a-form-model-item> - </a-col> - <a-col :span="12"> - <a-form-model-item label="授æƒå¼€å§‹æ—¥æœŸ" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="empowerBeginDate"> - <j-date placeholder="请选择授æƒå¼€å§‹æ—¥æœŸ" v-model="model.empowerBeginDate" style="width: 100%" /> - </a-form-model-item> - </a-col> - <a-col :span="12"> - <a-form-model-item label="授æƒç»“æŸæ—¥æœŸ" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="empowerEndDate"> - <j-date placeholder="请选择授æƒç»“æŸæ—¥æœŸ" v-model="model.empowerEndDate" style="width: 100%" /> - </a-form-model-item> - </a-col> - <a-col :span="12"> - <a-form-model-item label="授æƒå°åŒºæ•°é‡" :labelCol="labelCol" :wrapperCol="wrapperCol" - prop="empowerCommunityNum"> - <a-input-number v-model="model.empowerCommunityNum" placeholder="请输入试用å°åŒºæ•°é‡" style="width: 100%" /> - </a-form-model-item> - </a-col> - <a-col :span="12"> - <a-form-model-item label="æ”¶è´¹æ ‡å‡†" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="chargingStandardId"> - <a-select v-model="model.chargingStandardId" placeholder="è¯·é€‰æ‹©æ”¶è´¹æ ‡å‡†" style="width: 100%"> - <a-select-option v-for="item in costList" :key="item.id" - :value="item.id">{{item.chargingName}}</a-select-option> - </a-select> - </a-form-model-item> - </a-col> - <a-col :span="12"> - <a-form-model-item label="管ç†å‘˜è´¦æˆ·" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="adminLoginName"> - <a-input v-model="model.adminLoginName" placeholder="请输入管ç†å‘˜è´¦æˆ·"></a-input> - </a-form-model-item> - </a-col> - <a-col :span="12"> - <a-form-model-item label="管ç†å‘˜å¯†ç " :labelCol="labelCol" :wrapperCol="wrapperCol" prop="adminPassword"> - <a-input v-model="model.adminPassword" placeholder="请输入管ç†å‘˜å¯†ç "></a-input> - </a-form-model-item> - </a-col> - </a-row> - </a-card> --> <a-card title="åˆåŒé™„ä»¶"> <a-row> <a-col :span="24"> - <a-form-model-item label="åˆåŒé™„ä»¶" :labelCol="{ xs:{ span: 24 }, sm:{ span: 3 } }" :wrapperCol="wrapperCol" - prop="contractUrl"> - <j-upload v-model="model.contractUrl"></j-upload> + <a-form-model-item label="åˆåŒé™„ä»¶" :labelCol="{ xs:{ span: 24 }, sm:{ span: 3 } }" :wrapperCol="wrapperCol"> + <j-upload v-model="shopsInfo.contractUrl" disabled></j-upload> </a-form-model-item> </a-col> </a-row> </a-card> - <a-card title="商铺收款二维ç "> - <a-row> - <a-col :span="24"> - <img style="width: 300px; height: auto;" src="../../assets/logo.png"> - </a-col> - </a-row> - </a-card> </a-form-model> </j-form-container> - + <a-card title="商铺收款二维ç "> + <a-row> + <a-col :span="24"> + <img style="width: 300px; height: auto;" src="../../assets/logo.png"> + </a-col> + </a-row> + </a-card> + <a-card title="å®¡æ ¸è®°å½•" v-if="recordList.length > 0"> + <a-table ref="table" size="middle" :scroll="{x:true}" bordered rowKey="id" :columns="columns" + :dataSource="recordList" :pagination="false" :loading="loading" class="j-table-force-nowrap"> + </a-table> + </a-card> <Select-Community-Modal ref="selectCommunityModal" @selectFinished="selectCommunityOK"></Select-Community-Modal> <Select-Shops-Modal ref="selectShopsModal" @selectFinished="selectShopsOK"></Select-Shops-Modal> @@ -160,9 +110,8 @@ <script> const mapZoom = [5, 8, 10, 12] let timer = null -import { getPropertyChargruleListApi, getPropertyDetailApi, auditPropertyApi } from '@/api/api' +import { partnersShopByDepId, partnersShopAudit } from '@/api/api' import { httpAction, getAction } from '@/api/manage' -import { isMobile, validateCreditCode } from '@/utils/validate' import SelectCommunityModal from './modules/SelectCommunityModal' import SelectShopsModal from './modules/SelectShopsModal' @@ -174,54 +123,17 @@ export default { SelectShopsModal, }, data() { - const validateToNextPhone = (rule, value, callback) => { - if (value && isMobile(value)) { - callback() - } else { - callback('请输入æ£ç¡®çš„è”系人电è¯ï¼') - } - } - const validateCode = (rule, value, callback) => { - if (value && validateCreditCode(value)) { - callback() - } else { - callback('社会统一信用代ç 输入错误') - } - } - return { title: '', + loading:false, pageType: '', - pcaa: this.$Jpcaa, model: { - community: '', - housing: '', - propertyName: '', - creditCode: '', - legalName: '', - registCapital: undefined, - contactName: '', - contactPhone: '', - registAdress: [], - provinceName: '', - provinceCode: '', - cityName: '', - cityCode: '', - countyName: '', - countyCode: '', - addressInfo: '', - logoUrl: '', - groupInfo: '', - // empowerBeginDate: '', - // empowerEndDate: '', - // empowerCommunityNum: undefined, - //chargingStandardId: '', - contractUrl: '', - // adminLoginName: '', - // adminPassword: '123456', - longitude: '', - latitude: '', + communityName: '', + communityCode: '', + shopName: '', + shopCode: '', }, + shopsInfo: {}, labelCol: { xs: { span: 24 }, sm: { span: 6 }, @@ -232,58 +144,50 @@ export default { }, confirmLoading: false, validatorRules: { - community: [{ required: true, message: '请选择å°åŒº', trigger: 'change' }], - housing: [{ required: true, message: 'è¯·å…³è”æˆ¿å±‹', trigger: 'change' }], - propertyName: [{ required: true, message: '请选择商铺', trigger: 'change' }], - creditCode: [{ required: true, message: '请输入统一信用代ç ', trigger: 'blur' }, { validator: validateCode }], - legalName: [{ required: true, message: '请输入法人代表', trigger: 'blur' }], - registCapital: [{ required: true, message: '请输入注册资本', trigger: 'blur' }], - contactName: [{ required: true, message: '请输入è”系人', trigger: 'blur' }], - contactPhone: [ - { required: true, message: '请输入è”系人电è¯', trigger: 'blur' }, - { validator: validateToNextPhone }, - ], - registAdress: [{ required: true, message: '请选择注册地å€', trigger: 'change' }], - addressInfo: [{ required: true, message: '请输入详细地å€', trigger: 'blur' }], - logoUrl: [{ required: true, message: 'è¯·ä¸Šä¼ é›†å›¢LOGO', trigger: 'change' }], - // empowerBeginDate: [{ required: true, message: '请选择授æƒå¼€å§‹æ—¥æœŸ', trigger: 'change' }], - // empowerEndDate: [{ required: true, message: '请选择æƒç»“æŸæ—¥æœŸ', trigger: 'change' }], - // empowerCommunityNum: [{ required: true, message: '请输入授æƒå°åŒºæ•°é‡', trigger: 'blur' }], - // chargingStandardId: [{ required: true, message: 'è¯·é€‰æ‹©æ”¶è´¹æ ‡å‡†', trigger: 'change' }], - // adminLoginName: [{ required: true, message: '请输入管ç†å‘˜è´¦å·', trigger: 'blur' }], - // adminPassword: [{ required: true, message: '请输入管ç†å‘˜å¯†ç ', trigger: 'blur' }], - contractUrl: [{ required: true, message: 'è¯·ä¸Šä¼ åˆåŒé™„ä»¶', trigger: 'change' }], + communityName: [{ required: true, message: '请选择å°åŒº', trigger: 'change' }], + shopName: [{ required: true, message: '请选择商铺', trigger: 'change' }], }, url: { - add: '/property-central/property/propertySettled/add', - edit: '/property-central/property/propertySettled/edit', - queryById: '/property-central/property/propertySettled/queryById', + add: '/property-central/partners/partnersShop/add', }, - costList: [], mapRef: null, + recordList: [], + columns: [ + { + title: 'æ“作人', + dataIndex: 'createBy', + key: 'createBy', + align: 'center', + }, + { + title: '部门', + dataIndex: 'departName', + key: 'departName', + align: 'center', + }, + { + title: 'æ“作类型', + dataIndex: 'operateType', + key: 'operateType', + align: 'center', + }, + { + title: 'å®¡æ ¸çŠ¶æ€', + dataIndex: 'auditStatus', + key: 'auditStatus', + align: 'center', + }, + { + title: 'æ“作时间', + dataIndex: 'createTime', + key: 'createTime', + align: 'center', + }, + ], } }, - computed: { - formDisabled() { - return this.disabled - }, - }, - watch: { - 'model.addressInfo': { - handler(newV) { - if (newV) { - clearTimeout(timer) - timer = setTimeout(() => { - // this.getLongitude(this.model.categoryCodes[0], this.model.categoryCodes.join('') + newV, mapZoom[3]) - }, 1000) - } - }, - }, - }, + computed: {}, created() { - //备份model原始值 - //this.modelDefault = JSON.parse(JSON.stringify(this.model)) - this.onLoadCostList() this.pageType = this.$route.query.type if (this.$route.query.type == 'add') { this.title = '新增' @@ -305,20 +209,22 @@ export default { // var zoomCtrl = new BMapGL.ZoomControl(); // æ·»åŠ ç¼©æ”¾æŽ§ä»¶ // this.mapRef.addControl(zoomCtrl); this.mapRef.enableScrollWheelZoom(true) //å¼€å¯é¼ æ ‡æ»šè½®ç¼©æ”¾ - this.mapRef.addEventListener('click', (e) => this.getAddress(e)) + //this.mapRef.addEventListener('click', (e) => this.getAddress(e)) }, methods: { - async onLoadCostList() { - let data = await getPropertyChargruleListApi() - this.costList = data.result - }, async getPageDetail() { - let { result } = await getPropertyDetailApi({ id: this.$route.query.id }) - this.edit(result) - if (result.provinceName) { + let { result } = await partnersShopByDepId({ id: this.$route.query.id }) + this.recordList = result.recordList + this.model = Object.assign({}, result.partnersShop) + this.shopsInfo = Object.assign({}, result.shopInfo) + this.shopsInfo.registAdress = result.shopInfo.provinceName + result.shopInfo.cityName + result.shopInfo.countyName + if (this.shopsInfo.provinceName) { this.getLongitude( - result.provinceName, - result.provinceName + result.cityName + result.countyName + result.addressInfo, + this.shopsInfo.provinceName, + this.shopsInfo.provinceName + + this.shopsInfo.cityName + + this.shopsInfo.countyName + + this.shopsInfo.addressInfo, mapZoom[3] ) } @@ -331,110 +237,53 @@ export default { this.$refs.selectCommunityModal.visible = true }, selectCommunityOK(data) { - this.model.community = data.realname + this.model.communityName = data.communityName + this.model.communityCode = data.communityCode }, //选择商铺 chooseShops() { - this.$refs.selectShopsModal.visible = true + if (this.model.communityName && this.model.communityCode) { + let communityCode = this.model.communityCode + this.$refs.selectShopsModal.show(communityCode) + } else { + this.$message.warning('请先选择å°åŒº') + } }, selectShopsOK(data) { - this.model.propertyName = data.propertyName - this.model.creditCode = data.creditCode - this.model.legalName = data.legalName - this.model.contactName = data.contactName - this.model.contactPhone = data.contactPhone - this.model.registAdress = [data.provinceCode, data.cityCode, data.countyCode] - this.model.addressInfo = data.addressInfo - this.model.logoUrl = data.logoUrl - this.model.groupInfo = data.groupInfo - if (data.provinceName) { + console.log(data) + this.model.shopName = data.shopName + this.model.shopCode = data.shopCode + this.shopsInfo = data.shopInfo + this.shopsInfo.registAdress = data.shopInfo.provinceName + data.shopInfo.cityName + data.shopInfo.countyName + if (data.shopInfo.provinceName) { this.getLongitude( - data.provinceName, - data.provinceName + data.cityName + data.countyName + data.addressInfo, + data.shopInfo.provinceName, + data.shopInfo.provinceName + data.shopInfo.cityName + data.shopInfo.countyName + data.shopInfo.addressInfo, mapZoom[3] ) } }, - - contactPhoneChange(e) { - if (!this.model.adminLoginName) { - this.model.adminLoginName = e.target.value - } - }, - edit(record) { - this.model = Object.assign({}, record) - this.model.registAdress = [record.provinceCode, record.cityCode, record.countyCode] - this.visible = true - }, onExamine(type) { - // const that = this - // if (type == 1) { - // return auditPropertyApi({ - // id: this.$route.query.id, - // auditStatus: 'auditPass', - // }).then((res) => { - // that.$message.success('å®¡æ ¸é€šè¿‡æˆåŠŸ') - // that.$emit('ok') - // this.toReturn() - // }) - // } else if (type == 2) { - // return auditPropertyApi({ - // id: this.$route.query.id, - // auditStatus: 'refuse', - // }).then((res) => { - // that.$message.success('å®¡æ ¸é©³å›žæˆåŠŸ') - // this.toReturn() - // }) - // } - }, - addressChange(val) { - const province = Object.keys(val[0])[0] - const city = Object.keys(val[1])[0] - const county = Object.keys(val[2])[0] - this.model.provinceName = val[0][province] - this.model.provinceCode = province - this.model.cityName = val[1][city] - this.model.cityCode = city - this.model.countyName = val[2][county] - this.model.countyCode = county - if (this.model.addressInfo) { - this.getLongitude( - this.model.provinceName, - this.model.provinceName + this.model.cityName + this.model.countyName + this.model.addressInfo, - mapZoom[3] - ) - } - }, - addressBlur(val) { - if (this.model.provinceName) { - this.getLongitude( - this.model.provinceName, - this.model.provinceName + this.model.cityName + this.model.countyName + val.target.value, - mapZoom[3] - ) + const that = this + if (type == 1) { + return partnersShopAudit({ + id: this.$route.query.id, + auditStatus: 'auditPass', + }).then((res) => { + that.$message.success('å®¡æ ¸é€šè¿‡æˆåŠŸ') + that.$emit('ok') + this.toReturn() + }) + } else if (type == 2) { + return partnersShopAudit({ + id: this.$route.query.id, + auditStatus: 'refuse', + }).then((res) => { + that.$message.success('å®¡æ ¸é©³å›žæˆåŠŸ') + this.toReturn() + }) } }, - getAddress(e) { - let _this = this - // 创建地ç†ç¼–ç 实例 - var myGeo = new BMapGL.Geocoder() - // æ ¹æ®åæ ‡å¾—åˆ°åœ°å€æè¿° - myGeo.getLocation(new BMapGL.Point(e.latlng.lng, e.latlng.lat), function (result) { - if (result) { - _this.mapRef.clearOverlays() - _this.model.registAdress = [ - result.addressComponents.province, - result.addressComponents.city, - result.addressComponents.district, - ] - _this.model.addressInfo = result.addressComponents.street + result.addressComponents.streetNumber - _this.model.longitude = result.point.lng - _this.model.latitude = result.point.lat - _this.positionMap(e.latlng.lng, e.latlng.lat, mapZoom[3], result.address) - console.log(result) - } - }) - }, positionMap(mapCenterLng, mapCenterLat, mapzoom, address) { var point = new BMapGL.Point(mapCenterLng, mapCenterLat) // åˆ›å»ºç‚¹åæ ‡ this.mapRef.centerAndZoom(point, mapzoom) @@ -488,10 +337,11 @@ export default { if (!this.model.id) { httpurl += this.url.add method = 'post' - } else { - httpurl += this.url.edit - method = 'put' } + // else { + // httpurl += this.url.edit + // method = 'put' + // } //this.model.registAdress = undefined httpAction(httpurl, this.model, method) .then((res) => { @@ -535,7 +385,7 @@ export default { .area-select { width: 100% !important; } -.anchorBL{ +.anchorBL { visibility: hidden; } </style> \ No newline at end of file diff --git a/src/views/shops/ShopsList.vue b/src/views/shops/ShopsList.vue index 4c71e7e..89293b9 100644 --- a/src/views/shops/ShopsList.vue +++ b/src/views/shops/ShopsList.vue @@ -5,13 +5,13 @@ <a-form layout="inline" @keyup.enter.native="searchQuery"> <a-row :gutter="24"> <a-col :md="6" :sm="8"> - <a-form-item label="商铺åç§°"> - <j-input placeholder="请输入商铺åç§°" v-model="queryParam.propertyName"></j-input> + <a-form-item label="å°åŒºåç§°"> + <j-input placeholder="请输入å°åŒºåç§°" v-model="queryParam.communityName"></j-input> </a-form-item> </a-col> - <a-col :md="8" :sm="10"> - <a-form-item label="入驻时间"> - <a-range-picker @change="onChange" /> + <a-col :md="6" :sm="8"> + <a-form-item label="商铺åç§°"> + <j-input placeholder="请输入商铺åç§°" v-model="queryParam.shopName"></j-input> </a-form-item> </a-col> <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> @@ -32,9 +32,14 @@ <a-table ref="table" size="middle" :scroll="{x:true}" bordered rowKey="id" :columns="columns" :dataSource="dataSource" :pagination="pagination" :loading="loading" class="j-table-force-nowrap" @change="handleTableChange"> - <span slot="propertyStatus" slot-scope="text, record"> - <a-tag color="green" v-if="record.propertyStatus === 'normal'">æ£å¸¸</a-tag> - <a-tag color="red" v-else>冻结</a-tag> + <span slot="auditTatus" slot-scope="text, record"> + <a-tag color="orange" v-if="record.auditTatus === 'waitAudit'">å¾…å®¡æ ¸</a-tag> + <a-tag color="green" v-if="record.auditTatus === 'auditPass'">å®¡æ ¸é€šè¿‡</a-tag> + <a-tag color="red" v-else-if="record.auditTatus === 'refuse'">å®¡æ ¸æ‹’ç»</a-tag> + </span> + <span slot="freezingStatus" slot-scope="text, record"> + <a-tag color="green" v-if="record.freezingStatus === 'normal'">æ£å¸¸</a-tag> + <a-tag color="red" v-else-if="record.freezingStatus === 'freeze'">冻结</a-tag> </span> <span slot="action" slot-scope="text, record"> <a href="javascript:;" @click="propertyDetails(4, record.id)">详情</a> @@ -44,19 +49,16 @@ 更多 <a-icon type="down" /> </a> <a-menu slot="overlay"> - <a-menu-item> + <a-menu-item v-if="record.auditTatus === 'auditPass'"> <a href="javascript:;" - @click="onStatus(1,record)">{{record.propertyStatus === 'normal' ? '冻结' : '解冻'}}</a> + @click="onStatus(record)">{{record.freezingStatus === 'normal' ? '冻结' : '解冻'}}</a> </a-menu-item> - <a-menu-item> + <!-- <a-menu-item> <a href="javascript:;" @click="propertyDetails(2, record.id)">修改</a> - </a-menu-item> - <a-menu-item> + </a-menu-item> --> + <a-menu-item v-if="record.auditTatus != 'auditPass'"> <a href="javascript:;" @click="propertyDetails(3, record.id)">å®¡æ ¸</a> </a-menu-item> - <a-menu-item> - <a href="javascript:;" @click="onStatus(2,record)">解绑</a> - </a-menu-item> </a-menu> </a-dropdown> </span> @@ -66,15 +68,20 @@ </template> <script> -//import { auditPropertyApi, freezeOrPropertyApi } from '@/api/api' +import { partnersShopOperateApi } from '@/api/api' import { JeecgListMixin } from '@/mixins/JeecgListMixin' -import { filterDictTextByCache } from '@/components/dict/JDictSelectUtil' const columns = [ + { + title: '所属å°åŒº', + dataIndex: 'communityName', + key: 'communityName', + align: 'center', + }, { title: '商铺åç§°', - dataIndex: 'propertyName', - key: 'propertyName', + dataIndex: 'shopName', + key: 'shopName', align: 'center', }, { @@ -97,29 +104,28 @@ const columns = [ }, { title: '分利', - dataIndex: 'registCapital', - key: 'registCapital', + dataIndex: 'totalDivideProfits', + key: 'totalDivideProfits', align: 'center', }, { title: '交易金é¢', - dataIndex: 'empowerCommunityNum', - key: 'empowerCommunityNum', + dataIndex: 'totalAmount', + key: 'totalAmount', align: 'center', }, { title: 'å®¡æ ¸çŠ¶æ€', - dataIndex: 'auditStatus', - key: 'auditStatus', - customRender: function (text) { - return filterDictTextByCache('auditStatus', text) - }, + dataIndex: 'auditTatus', + scopedSlots: { customRender: 'auditTatus' }, + key: 'auditTatus', + align: 'center', }, { title: '冻结/解冻', - dataIndex: 'propertyStatus', - scopedSlots: { customRender: 'propertyStatus' }, - key: 'propertyStatus', + dataIndex: 'freezingStatus', + scopedSlots: { customRender: 'freezingStatus' }, + key: 'freezingStatus', align: 'center', }, { @@ -147,7 +153,7 @@ export default { showSizeChanger: true, }, url: { - list: '/property-central/property/propertySettled/list', + list: '/property-central/partners/partnersShop/list', }, } }, @@ -171,48 +177,22 @@ export default { }) } }, - onChange(date, dateString) { - if (dateString.length > 0) { - this.queryParam.createTime_begin = dateString[0] - this.queryParam.createTime_end = dateString[1] - } else { - this.queryParam.createTime_begin = '' - this.queryParam.createTime_end = '' - } - }, - onStatus(type, record) { + onStatus(record) { let that = this - if (type == 1) { - this.$confirm({ - title: `确认${record.propertyStatus === 'normal' ? '冻结' : '解冻'}æ¤å•†é“º?`, - closable: true, - okText: `${record.propertyStatus === 'normal' ? '冻结' : '解冻'}`, - onOk() { - // return freezeOrPropertyApi({ - // id: record.id, - // status: `${record.propertyStatus === 'normal' ? 'freeze' : 'normal'}`, - // }).then((res) => { - // that.searchQuery() - // }) - }, - onCancel() {}, - }) - } else if (type == 2) { - this.$confirm({ - title: `确认解绑商铺?`, - closable: true, - okText: `解绑`, - onOk() { - // return freezeOrPropertyApi({ - // id: record.id, - // status: `${record.propertyStatus === 'normal' ? 'freeze' : 'normal'}`, - // }).then((res) => { - // that.searchQuery() - // }) - }, - onCancel() {}, - }) - } + this.$confirm({ + title: `确认${record.freezingStatus === 'normal' ? '冻结' : '解冻'}æ¤å•†é“º?`, + closable: true, + okText: `${record.freezingStatus === 'normal' ? '冻结' : '解冻'}`, + onOk() { + return partnersShopOperateApi({ + id: record.id, + status: `${record.freezingStatus === 'normal' ? 'freeze' : 'normal'}`, + }).then((res) => { + that.searchQuery() + }) + }, + onCancel() {}, + }) }, }, } diff --git a/src/views/shops/modules/SelectCommunityModal.vue b/src/views/shops/modules/SelectCommunityModal.vue index d7ae784..d9254ce 100644 --- a/src/views/shops/modules/SelectCommunityModal.vue +++ b/src/views/shops/modules/SelectCommunityModal.vue @@ -58,7 +58,7 @@ import {getAction} from '@/api/manage' export default { - name: "SelectUserModal", + name: "SelectCommunityModal", data() { return { title: "选择å°åŒº", diff --git a/src/views/shops/modules/SelectShopsModal.vue b/src/views/shops/modules/SelectShopsModal.vue index 6f952ca..eb95a3a 100644 --- a/src/views/shops/modules/SelectShopsModal.vue +++ b/src/views/shops/modules/SelectShopsModal.vue @@ -10,7 +10,7 @@ <a-col :span="10"> <a-form-item label="商铺åç§°"> - <a-input placeholder="请输入商铺åç§°" v-model="queryParam.propertyName"></a-input> + <a-input placeholder="请输入商铺åç§°" v-model="queryParam.shopName"></a-input> </a-form-item> </a-col> <a-col :span="8"> @@ -43,7 +43,7 @@ import { filterObj } from '@/utils/util' import { getAction } from '@/api/manage' export default { - name: 'SelectUserModal', + name: 'SelectShopsModal', data() { return { title: '选择商铺', @@ -54,38 +54,43 @@ export default { // 表头 columns: [ { - title: '#', - dataIndex: '', - key: 'rowIndex', - width: 50, + title: '商铺åç§°', + dataIndex: 'shopName', + key: 'shopName', align: 'center', - customRender: function (t, r, index) { - return parseInt(index) + 1 - }, }, { - title: '商铺åç§°', - dataIndex: 'propertyName', - key: 'propertyName', + title: '商铺编ç ', + dataIndex: 'shopCode', + key: 'shopCode', align: 'center', }, { title: '统一社会信用代ç ', - dataIndex: 'creditCode', - key: 'creditCode', + dataIndex: 'shopInfo', + key: 'shopInfo', align: 'center', + customRender: function (text) { + return text.creditCode + }, }, { title: 'è”系人', - dataIndex: 'contactName', - key: 'contactName', + dataIndex: 'shopInfo', + key: 'shopInfo', align: 'center', + customRender: function (text) { + return text.contactName + }, }, { title: '电è¯', - dataIndex: 'contactPhone', - key: 'contactPhone', + dataIndex: 'shopInfo', + key: 'shopInfo', align: 'center', + customRender: function (text) { + return text.contactPhone + }, }, ], @@ -112,14 +117,23 @@ export default { selectedRows: [], selectedShops: {}, url: { - list: '/property-central/property/propertySettled/list', + list: '/property-central/shop/shopCommunity/list', }, + communityCode: '', } }, - created() { - this.loadData() - }, + // activated(){ + // console.log(11111) + // }, + // created() { + // console.log(2222) + // this.loadData() + // }, methods: { + show(communityCode) { + this.communityCode = communityCode + this.visible = true + }, searchQuery() { this.loadData(1) }, @@ -140,6 +154,7 @@ export default { this.ipagination.current = 1 } var params = this.getQueryParams() //查询æ¡ä»¶ + params.communityCode = this.communityCode getAction(this.url.list, params).then((res) => { if (res.success) { this.dataSource1 = res.result.records @@ -174,6 +189,13 @@ export default { this.loadData() }, }, + watch: { + visible() { + if (this.visible) { + this.loadData(1) + } + }, + }, } </script> <style lang="less" scoped> -- 2.17.1