提交 b1280e8d authored 作者: 何忠建's avatar 何忠建

联调数据

上级 e3d3ead6
......@@ -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
}
......
......@@ -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(
......
......@@ -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">
......
......@@ -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,
......
......@@ -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,73 +71,24 @@
</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-form-model>
</j-form-container>
<a-card title="商铺收款二维码">
<a-row>
<a-col :span="24">
......@@ -148,9 +96,11 @@
</a-col>
</a-row>
</a-card>
</a-form-model>
</j-form-container>
<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,
}
},
computed: {
formDisabled() {
return this.disabled
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',
},
},
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,109 +237,52 @@ 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]
)
}
},
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)
}
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()
})
}
},
positionMap(mapCenterLng, mapCenterLat, mapzoom, address) {
var point = new BMapGL.Point(mapCenterLng, mapCenterLat) // 创建点坐标
......@@ -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
......@@ -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' ? '冻结' : '解冻'}此商铺?`,
title: `确认${record.freezingStatus === 'normal' ? '冻结' : '解冻'}此商铺?`,
closable: true,
okText: `${record.propertyStatus === 'normal' ? '冻结' : '解冻'}`,
okText: `${record.freezingStatus === 'normal' ? '冻结' : '解冻'}`,
onOk() {
// return freezeOrPropertyApi({
// id: record.id,
// status: `${record.propertyStatus === 'normal' ? 'freeze' : 'normal'}`,
// }).then((res) => {
// that.searchQuery()
// })
},
onCancel() {},
return partnersShopOperateApi({
id: record.id,
status: `${record.freezingStatus === 'normal' ? 'freeze' : 'normal'}`,
}).then((res) => {
that.searchQuery()
})
} 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() {},
})
}
},
},
}
......
......@@ -58,7 +58,7 @@
import {getAction} from '@/api/manage'
export default {
name: "SelectUserModal",
name: "SelectCommunityModal",
data() {
return {
title: "选择小区",
......
......@@ -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>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论