From b417a422c08ceabd31fa7feaba42fd8a7b1e86d2 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期六, 18 一月 2025 09:14:08 +0800 Subject: [PATCH] 1 --- admin/src/views/contract/components/pendingBills.vue | 45 ++++- admin/src/api/ywContractBill.js | 34 ++++ admin/src/components/common/GlobalWindow.vue | 9 + admin/src/views/finance/components/batchCall.vue | 90 +++++++++++ admin/src/views/finance/collectionSettings.vue | 32 ++- admin/src/views/finance/overdueBills.vue | 33 ++- admin/src/api/ywTempConfig.js | 7 admin/src/views/finance/components/bullDetail.vue | 2 admin/src/views/contract/components/terminationAgreement.vue | 71 +++++--- admin/src/views/contract/components/contractDetail.vue | 20 ++ admin/src/views/finance/components/call.vue | 89 ++++++---- 11 files changed, 329 insertions(+), 103 deletions(-) diff --git a/admin/src/api/ywContractBill.js b/admin/src/api/ywContractBill.js index be95d5e..024b344 100644 --- a/admin/src/api/ywContractBill.js +++ b/admin/src/api/ywContractBill.js @@ -6,3 +6,37 @@ trim: true }) } + +// 鑾峰彇鎵归噺鍌即鏁版嵁 +export function getNoticeCustomerData (data) { + return request.post('/visitsAdmin/cloudService/business/ywContractBill/getNoticeCustomerData', data, { + trim: true + }) +} + +// 鍙戦�佸偓缂存暟鎹� +export function sendNoticeCustomerData (data) { + return request.post('/visitsAdmin/cloudService/business/ywContractBill/sendNoticeCustomerData', data, { + trim: true + }) +} + +// 涓嬭浇鍌垂鏂囦欢 +export function downloadCallFeeDoc (data) { + return request.post('/visitsAdmin/cloudService/business/ywContractBill/downloadCallFeeDoc', data, { + download: true, + trim: true + }) +} + +// 鍙戦�佺煭淇′笌閭欢 +export function sendSmsEmail (data) { + return request.post('/visitsAdmin/cloudService/business/ywContractBill/sendSmsEmail', data, { + trim: true + }) +} + +// 鑾峰彇寰呭鐞嗚处鍗� +export function getWaitDealList (contractId) { + return request.get(`/visitsAdmin/cloudService/business/ywContractBill/getWaitDealList?contractId=${contractId}`) +} diff --git a/admin/src/api/ywTempConfig.js b/admin/src/api/ywTempConfig.js index a167130..c0947e0 100644 --- a/admin/src/api/ywTempConfig.js +++ b/admin/src/api/ywTempConfig.js @@ -6,3 +6,10 @@ trim: true }) } + +// 鏇存柊閰嶇疆妯℃澘淇℃伅 +export function updTempConfig (data) { + return request.post('/visitsAdmin/cloudService/business/ywTempConfig/updTempConfig', data, { + trim: true + }) +} diff --git a/admin/src/components/common/GlobalWindow.vue b/admin/src/components/common/GlobalWindow.vue index b734be2..504f62f 100644 --- a/admin/src/components/common/GlobalWindow.vue +++ b/admin/src/components/common/GlobalWindow.vue @@ -22,6 +22,7 @@ <slot name="footer"> <el-button v-if="showConfirm" @click="confirm" :loading="confirmWorking" type="primary">{{text}}</el-button> <slot name="btns" /> + <el-button type="primary" v-if="isDownload" @click="downloadFile">涓嬭浇鍌即閫氱煡鍗�</el-button> <el-button @click="close">{{ backText }}</el-button> </slot> </div> @@ -68,6 +69,11 @@ visible: { type: Boolean, required: true + }, + // 鏄惁鏄剧ず涓嬭浇鎸夐挳 + isDownload: { + type: Boolean, + required: false } }, methods: { @@ -77,6 +83,9 @@ close () { this.$emit('close') this.$emit('update:visible', false) + }, + downloadFile() { + this.$emit('downloadFile') } } } diff --git a/admin/src/views/contract/components/contractDetail.vue b/admin/src/views/contract/components/contractDetail.vue index 64cb0d9..5683288 100644 --- a/admin/src/views/contract/components/contractDetail.vue +++ b/admin/src/views/contract/components/contractDetail.vue @@ -17,8 +17,8 @@ <el-tag type="info" v-if="info.status === 4">宸查��绉�</el-tag> </div> <div> - <el-button type="primary" @click="$refs.pendingBills.open('寰呭鐞嗚处鍗�')">鏌ョ湅寰呭鐞嗚处鍗�</el-button> - <el-button @click="$refs.terminationAgreement.open('閫�绉熷崗璁�')">鏌ョ湅閫�绉熷崗璁�</el-button> + <el-button type="primary" @click="$refs.pendingBills.open('寰呭鐞嗚处鍗�', id)" v-if="info.status === 3">鏌ョ湅寰呭鐞嗚处鍗�</el-button> + <el-button @click="$refs.terminationAgreement.open('閫�绉熷崗璁�', id)" v-if="[3,4].includes(info.status)">鏌ョ湅閫�绉熷崗璁�</el-button> <el-button plain type="danger" v-if="[0, 1, 2].includes(info.status)" @click="refund">閫�绉�</el-button> </div> </div> @@ -197,6 +197,13 @@ v-loading="loading" style="width: 100%"> <el-table-column + width="150" + label="璐﹀崟缂栧彿"> + <template slot-scope="{row}"> + <el-button type="text" @click="openBill(row.id)">{{row.code}}</el-button> + </template> + </el-table-column> + <el-table-column label="璐圭敤绫诲瀷"> <template slot-scope="{row}"> <span v-if="row.costType === 0">绉熻祦璐�</span> @@ -327,6 +334,8 @@ <PendingBills ref="pendingBills" /> <!-- 閫�绉熷崗璁� --> <TerminationAgreement ref="terminationAgreement" /> + <!-- 璐﹀崟璇︽儏 --> + <BullDetail ref="bullDetail" /> </GlobalWindow> </template> @@ -336,6 +345,7 @@ import TerminateLease from './terminateLease' import PendingBills from './pendingBills' import TerminationAgreement from './terminationAgreement' +import BullDetail from '../../finance/components/bullDetail' import { getById } from '@/api/contract' import { fetchList } from '@/api/bill' export default { @@ -343,7 +353,8 @@ GlobalWindow, TerminateLease, PendingBills, - TerminationAgreement + TerminationAgreement, + BullDetail }, extends: BaseOpera, data() { @@ -375,6 +386,9 @@ xiazai (url) { window.open(url) }, + openBill(id) { + this.$refs.bullDetail.open('璐﹀崟璇︽儏', id) + }, returnUnit (type) { switch (type) { case 0: diff --git a/admin/src/views/contract/components/pendingBills.vue b/admin/src/views/contract/components/pendingBills.vue index 1ecd98f..b694d96 100644 --- a/admin/src/views/contract/components/pendingBills.vue +++ b/admin/src/views/contract/components/pendingBills.vue @@ -10,19 +10,19 @@ <div class="zd_list"> <div class="zd_list_row"> <span>寰呮敹娆捐处鍗曟暟</span> - <span>2</span> + <span>{{info.inAmount || 0}}</span> </div> <div class="zd_list_row"> <span>寰呮敹娆鹃噾棰�</span> - <span>锟�247.00</span> + <span>锟{info.inFee || 0}}</span> </div> <div class="zd_list_row"> <span>寰呬粯娆捐处鍗曟暟</span> - <span>3</span> + <span>{{info.payAmount || 0}}</span> </div> <div class="zd_list_row"> <span>寰呬粯娆鹃噾棰�</span> - <span>锟�247.00</span> + <span>锟{info.payFee || 0}}</span> </div> </div> <div class="zd_content"> @@ -30,7 +30,7 @@ <span>璐﹀崟</span> </div> <el-table - :data="tableData" + :data="info.ywContractBillList" border style="width: 100%"> <el-table-column @@ -38,27 +38,38 @@ label="璐﹀崟缂栧彿"> </el-table-column> <el-table-column - prop="name" label="璐圭敤绫诲瀷"> + <template slot-scope="{row}"> + <span v-if="row.costType === 0">绉熻祦璐�</span> + <span v-if="row.costType === 1">鐗╀笟璐�</span> + <span v-if="row.costType === 2">绉熻祦鎶奸噾</span> + <span v-if="row.costType === 3">鐗╀笟鎶奸噾</span> + <span v-if="row.costType === 4">姘寸數璐�</span> + <span v-if="row.costType === 5">鏉傞」璐�</span> + <span v-if="row.costType === 6">鍏朵粬</span> + <span v-if="row.costType === 7">淇濊瘉閲�</span> + </template> </el-table-column> <el-table-column - prop="address" label="璁¤垂鍛ㄦ湡"> + <template slot-scope="{row}"> + {{row.startDate}}~{{row.endDate}} + </template> </el-table-column> <el-table-column - prop="address" + prop="receivableFee" label="搴旀敹浠橀噾棰�/鍘熷搴旀敹浠�"> </el-table-column> <el-table-column - prop="address" + prop="actReceivableFee" label="瀹炴敹/浠橀噾棰�"> </el-table-column> <el-table-column - prop="address" + prop="needReceivableFee" label="闇�鏀�/浠橀噾棰�"> </el-table-column> <el-table-column - prop="address" + prop="receivableFee" label="搴旀敹/浠樻棩鏈�"> </el-table-column> </el-table> @@ -70,6 +81,7 @@ <script> import GlobalWindow from '@/components/common/GlobalWindow' import BaseOpera from '@/components/base/BaseOpera' + import { getWaitDealList } from '@/api/ywContractBill' export default { name: 'pendingBills', components: { @@ -78,11 +90,18 @@ extends: BaseOpera, data () { return { - tableData: [] + info: [] } }, methods: { - + open (title, contractId) { + this.title = title + getWaitDealList(contractId) + .then(res => { + this.info = res + this.visible = true + }) + } } } </script> diff --git a/admin/src/views/contract/components/terminationAgreement.vue b/admin/src/views/contract/components/terminationAgreement.vue index 9b02d5c..d9d9280 100644 --- a/admin/src/views/contract/components/terminationAgreement.vue +++ b/admin/src/views/contract/components/terminationAgreement.vue @@ -8,40 +8,43 @@ @confirm="confirm"> <div class="main"> <div class="main_head"> - <span>绉熷锛氫箳涔撶悆淇变箰閮�</span> - <span>鍚堝悓缂栧彿锛� 2024-04-001-202405-0019</span> - </div> - <div class="title">閫�绉熶俊鎭�</div> - <div class="list"> - <div class="item"> - <div class="la">閫�绉熺被鍨�</div> - <div class="val">{{ info.code }}</div> - </div> - <div class="item"> - <div class="la">閫�绉熸棩鏈�</div> - <div class="val">{{ info.userName }}</div> - </div> - <div class="item"> - <div class="la">缁忓姙浜�</div> - <div class="val">{{ info.creatorName }}</div> - </div> - <div class="item"> - <div class="la">鍗忚绛捐鏃ユ湡</div> - <div class="val">{{ info.totalArea }}銕�</div> - </div> - <div class="item"> - <div class="la">閫�绉熷師鍥�</div> - <div class="val">{{ info.companyName }}</div> - </div> + <span>绉熷锛歿{info.renterName}}</span> + <span>鍚堝悓缂栧彿锛� {{info.code}}</span> </div> <div class="title">鎴挎簮淇℃伅</div> <div class="list"> - <el-table :data="roomList" stripe> + <el-table :data="info.roomList" stripe> <el-table-column prop="projectName" label="椤圭洰鍚嶇О" show-overflow-tooltip /> <el-table-column prop="buildingName" label="妤煎畤鍚嶇О" show-overflow-tooltip /> <el-table-column prop="buildingName" label="妤煎眰/鎴垮彿" show-overflow-tooltip></el-table-column> <el-table-column prop="area" label="闈㈢Н" show-overflow-tooltip></el-table-column> </el-table> + </div> + <div class="title">閫�绉熶俊鎭�</div> + <div class="list"> + <div class="item"> + <div class="la">閫�绉熺被鍨�</div> + <div class="val" v-if="info.btType === 0">鍒版湡閫�绉�</div> + <div class="val" v-if="info.btType === 1">鎹㈡埧閫�绉�</div> + <div class="val" v-if="info.btType === 2">杩濈害閫�绉�</div> + <div class="val" v-if="info.btType === 3">鍗忓晢閫�绉�</div> + </div> + <div class="item"> + <div class="la">閫�绉熸棩鏈�</div> + <div class="val">{{ info.btDate }}</div> + </div> + <div class="item"> + <div class="la">缁忓姙浜�</div> + <div class="val">{{ info.userName }}</div> + </div> + <div class="item"> + <div class="la">鍗忚绛捐鏃ユ湡</div> + <div class="val">{{ info.signDate }}銕�</div> + </div> + <div class="item"> + <div class="la">閫�绉熷師鍥�</div> + <div class="val">{{ info.btInfo }}</div> + </div> </div> </div> </GlobalWindow> @@ -50,6 +53,7 @@ <script> import GlobalWindow from '@/components/common/GlobalWindow' import BaseOpera from '@/components/base/BaseOpera' + import { getById } from '@/api/contract' export default { name: "terminationAgreement", components: { @@ -58,12 +62,23 @@ extends: BaseOpera, data() { return { - roomList: [], + id: null, info: {} } }, methods: { - + open (title, id) { + this.title = title + this.id = id + this.getData() + }, + getData () { + getById(this.id) + .then(res => { + this.info = res + this.visible = true + }) + }, } } </script> diff --git a/admin/src/views/finance/collectionSettings.vue b/admin/src/views/finance/collectionSettings.vue index 1df43de..9a1ec04 100644 --- a/admin/src/views/finance/collectionSettings.vue +++ b/admin/src/views/finance/collectionSettings.vue @@ -5,13 +5,13 @@ <el-form ref="form" :model="form" label-width="120px"> <el-form-item label="鐭俊妯℃澘"> <div style="display: flex; align-items: self-start;"> - <el-input type="textarea" rows="5" v-model="form.smsTemp"></el-input> + <el-input type="textarea" rows="5" v-model="form.smsTemp.title"></el-input> <!-- <el-button type="primary" style="margin-left: 10px;">淇濆瓨</el-button>--> </div> </el-form-item> <el-form-item label="閭妯℃澘"> <div style="display: flex; align-items: self-start;"> - <el-input type="textarea" rows="5" v-model="form.emailTemp"></el-input> + <el-input type="textarea" rows="5" v-model="form.emailTemp.title"></el-input> <!-- <el-button type="primary" style="margin-left: 10px;">淇濆瓨</el-button>--> </div> </el-form-item> @@ -44,7 +44,7 @@ </el-upload> </el-form-item> <el-form-item> - <el-button type="primary" @click="submit">淇濆瓨</el-button> + <el-button type="primary" @click="submit" :disabled="loading" :loading="loading">淇濆瓨</el-button> </el-form-item> </el-form> </div> @@ -56,7 +56,7 @@ <script> import templateKeywords from './components/templateKeywords' - import { getCallTemp } from '@/api/ywTempConfig' + import { getCallTemp, updTempConfig } from '@/api/ywTempConfig' export default { name: 'collectionSettings', data() { @@ -66,11 +66,12 @@ folder: 'TEMP_CONFIG' }, form: { - emailTemp: '', - smsTemp: '', + emailTemp: {}, + smsTemp: {}, leaseTemp: [], otherTemp: [] - } + }, + loading: false } }, components: { templateKeywords }, @@ -79,7 +80,18 @@ }, methods: { submit() { - + this.loading = true + updTempConfig({ + emailTemp: this.form.emailTemp, + smsTemp: this.form.smsTemp, + leaseTemp: this.form.leaseTemp[0], + otherTemp: this.form.otherTemp[0] + }).then(res => { + this.$message.success('鏇存柊鎴愬姛锛�') + this.getCallTempVal() + }).finally(() => { + this.loading = false + }) }, handleRemove(e) { this.form.leaseTemp = [] @@ -98,8 +110,8 @@ getCallTempVal() { getCallTemp({}) .then(res => { - this.form.smsTemp = res.smsTemp.title - this.form.emailTemp = res.emailTemp.title + this.form.smsTemp = res.smsTemp + this.form.emailTemp = res.emailTemp this.form.leaseTemp = [{ url: res.leaseTemp.url, name: res.leaseTemp.title }] this.form.otherTemp = [{ url: res.otherTemp.url, name: res.otherTemp.title }] }) diff --git a/admin/src/views/finance/components/batchCall.vue b/admin/src/views/finance/components/batchCall.vue new file mode 100644 index 0000000..adeab27 --- /dev/null +++ b/admin/src/views/finance/components/batchCall.vue @@ -0,0 +1,90 @@ +<template> + <GlobalWindow + :title="title" + :visible.sync="visible" + :isDownload="true" + width="100%" + @downloadFile="downloadFile" + @confirm="confirm"> + <el-form :model="form" label-position="top" ref="paramRef"> + <el-form-item label="閫氱煡鏂瑰紡"> + <el-checkbox-group v-model="form.type"> + <el-checkbox label="鐭俊"></el-checkbox> + <el-checkbox label="閭欢"></el-checkbox> + </el-checkbox-group> + </el-form-item> + <el-form-item label="閫氱煡鎺ユ敹浜�"> + <div style="display: flex; align-items: center; margin-bottom: 10px;" v-for="(item, index) in userList" :key="index"> + <span style="margin-right: 15px; font-size: 15px; color: #222222;">{{item.customerName}}</span> + <el-select v-model="item.userId" placeholder="璇烽�夋嫨"> + <el-option + v-for="(item, index) in item.memberList" + :key="index" + :label="item.name" + :value="item.id" /> + </el-select> + </div> + </el-form-item> + </el-form> + </GlobalWindow> +</template> + +<script> + import GlobalWindow from '@/components/common/GlobalWindow' + import BaseOpera from '@/components/base/BaseOpera' + import { getNoticeCustomerData, downloadCallFeeDoc, sendSmsEmail } from '@/api/ywContractBill' + export default { + name: "batchCall", + components: { GlobalWindow }, + extends: BaseOpera, + data() { + return { + ids: null, + form: { + type: [] + }, + userList: [] + } + }, + methods: { + open (title, ids) { + this.title = title + this.ids = ids + this.form.type = [] + this.userList = [] + this.visible = true + this.getUser() + }, + downloadFile() { + downloadCallFeeDoc(this.ids) + .then(response => { + this.download(response) + }) + .catch(e => { + this.$tip.apiFailed(e) + }) + }, + getUser() { + getNoticeCustomerData(this.ids) + .then(res => { + this.userList = res + }) + }, + confirm() { + if (this.form.type.length === 0) return this.$message.warning('閫氱煡鏂瑰紡涓嶈兘涓虹┖') + let arr = this.userList.map(item => { + return { + billId: item.billId, + sendEmail: this.form.type.includes('閭欢') ? 1 : 0, + sendSms: this.form.type.includes('鐭俊') ? 1 : 0, + userId: item.userId + } + }) + sendSmsEmail(arr).then(res => { + this.$message.success('鍙戦�佹垚鍔燂紒') + this.visible = false + }) + } + } + } +</script> diff --git a/admin/src/views/finance/components/bullDetail.vue b/admin/src/views/finance/components/bullDetail.vue index b40909b..976f0a0 100644 --- a/admin/src/views/finance/components/bullDetail.vue +++ b/admin/src/views/finance/components/bullDetail.vue @@ -9,7 +9,7 @@ <el-tag type="info" v-if="info.status === 1">鍏抽棴</el-tag> </div> <div style="display: flex; align-items: center;"> - <el-button @click="$refs.call.open('鍙戦�佸偓缂撮�氱煡', info)">鍙戦�佺即璐归�氱煡</el-button> + <el-button @click="$refs.call.open('鍙戦�佸偓缂撮�氱煡', [info.id])">鍙戦�佺即璐归�氱煡</el-button> <el-button plain type="primary" v-if="![1].includes(info.payStatus)" @click="$refs.flowingWater.open('鍒涘缓鏀舵敮娴佹按', { billType: returnBillType(), billId: info.id, diff --git a/admin/src/views/finance/components/call.vue b/admin/src/views/finance/components/call.vue index d2504cc..2660506 100644 --- a/admin/src/views/finance/components/call.vue +++ b/admin/src/views/finance/components/call.vue @@ -1,24 +1,29 @@ <template> <GlobalWindow - :title="title" - :visible.sync="visible" - width="100%" - @confirm="confirm"> - <el-form :model="form" label-position="top" ref="paramRef" :rules="rules"> - <el-form-item label="閫氱煡鏂瑰紡" prop="type"> + :title="title" + :visible.sync="visible" + :isDownload="true" + width="100%" + @downloadFile="downloadFile" + @confirm="confirm"> + <el-form :model="form" label-position="top" ref="paramRef"> + <el-form-item label="閫氱煡鏂瑰紡"> <el-checkbox-group v-model="form.type"> <el-checkbox label="鐭俊"></el-checkbox> <el-checkbox label="閭欢"></el-checkbox> </el-checkbox-group> </el-form-item> - <el-form-item label="閫氱煡鎺ユ敹浜�" prop="userId"> - <el-select v-model="form.userId" placeholder="璇烽�夋嫨"> - <el-option - v-for="(item, index) in userList" - :key="index" - :label="item.realname" - :value="item.id" /> - </el-select> + <el-form-item label="閫氱煡鎺ユ敹浜�"> + <div style="display: flex; align-items: center; margin-bottom: 10px;" v-for="(item, index) in userList" :key="index"> + <span style="margin-right: 15px; font-size: 15px; color: #222222;">{{item.customerName}}</span> + <el-select v-model="item.userId" placeholder="璇烽�夋嫨"> + <el-option + v-for="(item, index) in item.memberList" + :key="index" + :label="item.name" + :value="item.id" /> + </el-select> + </div> </el-form-item> </el-form> </GlobalWindow> @@ -27,46 +32,58 @@ <script> import GlobalWindow from '@/components/common/GlobalWindow' import BaseOpera from '@/components/base/BaseOpera' - import { getUserList } from '@/api/system/user' + import { getNoticeCustomerData, downloadCallFeeDoc, sendSmsEmail } from '@/api/ywContractBill' export default { name: "call", components: { GlobalWindow }, extends: BaseOpera, data() { return { - info: null, + ids: null, form: { - type: [], - userId: '' - }, - rules: { - type: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }], - userId: [{ required: true, message: '璇烽�夋嫨', trigger: 'blur' }] + type: [] }, userList: [] } }, - created () { - this.getUser() - }, methods: { - open (title, target) { + open (title, ids) { this.title = title - this.info = target + this.ids = ids + this.form.type = [] + this.userList = [] this.visible = true + this.getUser() }, - getUser() { - getUserList({}) - .then(res => { - this.userList = res - }) - }, + downloadFile() { + downloadCallFeeDoc(this.ids) + .then(response => { + this.download(response) + }) + .catch(e => { + this.$tip.apiFailed(e) + }) + }, + getUser() { + getNoticeCustomerData(this.ids) + .then(res => { + this.userList = res + }) + }, confirm() { - this.$refs.paramRef.validate((valid) => { - if (!valid) { - return + if (this.form.type.length === 0) return this.$message.warning('閫氱煡鏂瑰紡涓嶈兘涓虹┖') + let arr = this.userList.map(item => { + return { + billId: item.billId, + sendEmail: this.form.type.includes('閭欢') ? 1 : 0, + sendSms: this.form.type.includes('鐭俊') ? 1 : 0, + userId: item.userId } }) + sendSmsEmail(arr).then(res => { + this.$message.success('鍙戦�佹垚鍔燂紒') + this.visible = false + }) } } } diff --git a/admin/src/views/finance/overdueBills.vue b/admin/src/views/finance/overdueBills.vue index fd8ad9a..41c000b 100644 --- a/admin/src/views/finance/overdueBills.vue +++ b/admin/src/views/finance/overdueBills.vue @@ -7,10 +7,14 @@ <div class="tab" :class="{ active: billType === 1 }" @click="tabsClick(1)">閫炬湡浠樻璐﹀崟</div> </div> <div class="btns"> - <el-button @click="$refs.call.open('鎵归噺鍌即')">鎵归噺鍌即</el-button> + <el-button :disabled="ids.length === 0" @click="batchCall">鎵归噺鍌即</el-button> </div> </div> - <el-table v-loading="loading" :data="list" stripe> + <el-table v-loading="loading" :data="list" @selection-change="handleSelectionChange" stripe> + <el-table-column + type="selection" + width="55"> + </el-table-column> <el-table-column prop="customerName" label="瀹㈡埛鍚嶇О" min-width="100" show-overflow-tooltip /> <el-table-column label="鎴块棿" min-width="170" show-overflow-tooltip> <template slot-scope="{row}"> @@ -64,14 +68,14 @@ </el-table-column> <el-table-column label="鐭俊鍙戦�佺姸鎬�" min-width="100" fixed="right" show-overflow-tooltip> <template slot-scope="{row}"> - <span v-if="row.status === 0">寮�鍚�</span> - <span v-if="row.status === 1" style="color: red;">鍏抽棴</span> + <span v-if="row.isSendSms === 0">鍚�</span> + <span v-if="row.isSendSms === 1">鏄�</span> </template> </el-table-column> <el-table-column label="閭欢鍙戦�佺姸鎬�" min-width="100" fixed="right" show-overflow-tooltip> <template slot-scope="{row}"> - <span v-if="row.status === 0">寮�鍚�</span> - <span v-if="row.status === 1" style="color: red;">鍏抽棴</span> + <span v-if="row.isSendEmail === 0">鍚�</span> + <span v-if="row.isSendEmail === 1">鏄�</span> </template> </el-table-column> <el-table-column label="鎿嶄綔" min-width="120" fixed="right"> @@ -86,7 +90,7 @@ <Edit ref="EditRef" @success="getList" /> <Detail ref="DetailRef" @success="getList" /> <BullEditFu ref="BullEditFu" @success="getList" /> - <Call ref="call" @success="getList" /> + <BatchCall ref="batchCall" @success="getList" /> </div> </template> @@ -96,7 +100,7 @@ import Edit from './components/bullEdit.vue' import BullEditFu from './components/bullEditFu.vue' import Detail from './components/bullDetail.vue' - import Call from './components/call.vue' + import BatchCall from './components/batchCall.vue' import { fetchList } from '@/api/ywContractBill' export default { components: { @@ -105,7 +109,7 @@ Edit, Detail, BullEditFu, - Call + BatchCall }, data () { return { @@ -115,6 +119,7 @@ page: 1, total: 0 }, + ids: [], billType: 0, filters: { status: 0 @@ -153,6 +158,13 @@ this.getList() }, methods: { + batchCall() { + if (!this.ids) return this.$message.warning('璇峰厛閫夋嫨璐﹀崟') + this.$refs.batchCall.open('鎵归噺鍌即', this.ids) + }, + handleSelectionChange(e) { + this.ids = e.map(item => item.id) + }, addOpen () { if (this.billType === 0) { this.$refs.EditRef.open('鍒涘缓鏀舵璐﹀崟') @@ -178,9 +190,6 @@ }).then(res => { this.loading = false this.list = res.records || [] - this.list.forEach(item => { - item.statusName = item.status === 1 ? '鎹熷潖' : item.status === 2 ? '鎶ュ簾' : '姝e父' - }) this.pagination.total = res.total || 0 }, () => { this.loading = false -- Gitblit v1.9.3