customer-index.vue 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678
  1. <template>
  2. <div class="mis-pageBox">
  3. <!-- 主页 -->
  4. <el-container>
  5. <el-header height="40px">
  6. <el-row>
  7. <el-col :span="18">
  8. <div style="display:flex;align-items:center;">
  9. 所属公司:<cpsCompany v-model="queryParams.companyBranch" size="small" style="width:150px"
  10. @change="changeGs">
  11. </cpsCompany>&nbsp;
  12. 所属片区:<cpsSelect v-model="queryParams.mrArea" size="small" skey="cbpq"
  13. :params="{ company_branch: queryParams.companyBranch }" isDisabled="all"
  14. :refresh="cbpqRefresh" @change="changeCbpq" style="width:150px">
  15. </cpsSelect>&nbsp;
  16. 所属表册:<cpsSelect v-model="queryParams.mrBook" size="small" skey="cbb"
  17. :params="{ company_branch: queryParams.companyBranch, mr_area: queryParams.mrArea }"
  18. isDisabled="all" :refresh="cbbRefresh" :labelGroup=true :filterable=true
  19. style="width:150px"></cpsSelect>&nbsp;
  20. 关 键 字:<el-input v-model="queryParams.searchText" size="small" style="width:150px;"
  21. placeholder="输入关键字" clearable @keyup.enter.native="clickQuery()" />&nbsp;
  22. <!-- <el-button-group>
  23. <el-button type="primary" size="small" icon="el-icon-search"
  24. @click="clickQuery()">查询</el-button>
  25. <el-tooltip content="高级搜索" placement="top" effect="light">
  26. <el-button type="primary" size="small" icon="el-icon-arrow-up"
  27. style="padding-left: 6px;padding-right:6px;" @click="advancedQuery"></el-button>
  28. </el-tooltip>
  29. </el-button-group> -->
  30. <el-dropdown split-button type="primary" size="small" placement="top" @click="clickQuery()"
  31. @command="advancedQuery">
  32. <i class="el-icon-search"></i> 查询
  33. <el-dropdown-menu slot="dropdown">
  34. <el-dropdown-item command="advancedQuery">高级搜索</el-dropdown-item>
  35. </el-dropdown-menu>
  36. </el-dropdown>
  37. </div>
  38. </el-col>
  39. <el-col :span="6" class="list-opCol">
  40. <el-button type="success" size="small" icon="el-icon-plus" @click="clickAdd()">添加</el-button>
  41. <el-button type="warning" size="small" icon="el-icon-edit" @click="clickModify()"
  42. :disabled="disabledModify">修改</el-button>
  43. <el-button type="danger" size="small" icon="el-icon-delete" @click="clickDelete()"
  44. :disabled="disabledDelete">作废</el-button>
  45. <el-popover placement="top-start" title="提示" width="200" trigger="hover"
  46. content="数据量大时等待时间可能较长,请您耐心等待!">
  47. <el-button slot="reference" type="info" size="small" icon="el-icon-document"
  48. @click="clickExport()">导出</el-button>
  49. </el-popover>
  50. <!-- <el-button type="info" size="small" icon="el-icon-document" @click="clickExport()">导出</el-button> -->
  51. </el-col>
  52. </el-row>
  53. </el-header>
  54. <el-main>
  55. <tfTable :table-data="dataList" :column="columns" :for-id="true" :pagination="true"
  56. :currentpage="pageInfo.current" :pagesize="pageInfo.size" :total="pageInfo.tableTotal" :border="true"
  57. :multiple="false" :fixed="true" :isdelete="false" :is-select="false" :stripe="true"
  58. @handleCurrentChange="handleCurrentChange" @handleSizeChange="handleSizeChange"
  59. @handleSelectionChange="handleSelectionChange" @rowDblclick="showDetail" @detail="showDetail"
  60. @sortChange="onCustomerSortChange" @rowClick="handleRowClick" />
  61. </el-main>
  62. </el-container>
  63. <!-- 详情页 -->
  64. <el-dialog v-if="dialogVisible" v-dialogDrag :title="dialogTitle" top="0vh" :visible.sync="dialogVisible"
  65. width="70%" height="100%">
  66. <tfDetail :detailData="detailData" :editState="editState" ref="dForm" />
  67. <template slot="footer">
  68. <el-button type="primary" icon="el-icon-check" @click="clickSave()" v-if="!editState">确 定</el-button>
  69. <el-button icon="el-icon-close" @click="clickCancel()">关 闭</el-button>
  70. </template>
  71. </el-dialog>
  72. <!-- 高级搜索 -->
  73. <el-drawer title="高级搜索" :visible.sync="drawerDialog" direction="ttb" size="350px" ref="drawer">
  74. <el-container>
  75. <el-main>
  76. <el-row type="flex" style="padding:8px 12px;">
  77. <!-- 左侧 -->
  78. <el-col :span="16" style="border-left:1px solid whitesmoke;">
  79. <el-tag>筛选条件</el-tag>
  80. <div class="filterDiv">
  81. <div style="margin:5px;">
  82. 所属公司:<cpsCompany v-model="queryParams.companyBranch" size="small" style="width:180px"
  83. @change="changeGs">
  84. </cpsCompany>&nbsp;
  85. 所属片区:<cpsSelect v-model="queryParams.mrArea" size="small" skey="cbpq"
  86. :params="{ company_branch: queryParams.companyBranch }" isDisabled="all"
  87. :refresh="cbpqRefresh" @change="changeCbpq" style="width:180px">
  88. </cpsSelect>&nbsp;
  89. 所属表册:<cpsSelect v-model="queryParams.mrBook" size="small" skey="cbb"
  90. :params="{ company_branch: queryParams.companyBranch, mr_area: queryParams.mrArea }"
  91. isDisabled="all" :refresh="cbbRefresh" :labelGroup=true :filterable=true
  92. style="width:180px"></cpsSelect>&nbsp;
  93. </div>
  94. <div style="margin:5px;">
  95. 用户状态:<cpsSelect v-model="queryParams.customerState" size="small" skey="yhzt"
  96. style="width:180px;" isDisabled="all">
  97. </cpsSelect>&nbsp;
  98. 用水性质:<cpsSelect v-model="queryParams.priceCode" size="small" skey="sj"
  99. style="width:180px;">
  100. </cpsSelect>&nbsp;
  101. 表具类型:<cpsSelect v-model="queryParams.priceCode" size="small" skey="sblb"
  102. style="width:180px;">
  103. </cpsSelect>&nbsp;
  104. </div>
  105. <div style="margin:5px;">
  106. 关&nbsp;键&nbsp;字&nbsp;:<el-input v-model="queryParams.searchText" size="small"
  107. style="width:440px;" placeholder="输入编号、姓名、地址、电话" clearable />&nbsp;
  108. </div>
  109. <div style="margin:5px;">
  110. 建档日期:<el-date-picker v-model="dprCreatedDate" type="daterange" align="right"
  111. unlink-panels range-separator="至" start-placeholder="建档开始日期"
  112. end-placeholder="建档结束日期" value-format="yyyy-MM-dd" :picker-options="pickerOptions"
  113. size="small" style="width:438px;" @change="() => {
  114. if (this.dprCreatedDate && this.dprCreatedDate.length > 0) {
  115. this.queryParams.createdDatetime_start = this.dprCreatedDate[0];
  116. this.queryParams.createdDatetime_end = this.dprCreatedDate[1];
  117. } else {
  118. this.queryParams.createdDatetime_start = undefined;
  119. this.queryParams.createdDatetime_end = undefined;
  120. }
  121. }">
  122. </el-date-picker>
  123. </div>
  124. </div>
  125. </el-col>
  126. <!-- 右侧 -->
  127. <el-col :span="8" style="border-left:1px solid whitesmoke;">
  128. <el-tag>分类匹配</el-tag>
  129. <div class="filterDiv">
  130. <div style="margin:5px;">
  131. 用户编号:<el-input v-model="queryParams.searchText" placeholder="请输入" size="small"
  132. style="width:200px;"></el-input>
  133. </div>
  134. <div style="margin:5px;">
  135. 用户姓名:<el-input v-model="queryParams.searchText" placeholder="请输入" size="small"
  136. style="width:200px;"></el-input>
  137. </div>
  138. <div style="margin:5px;">
  139. 用户地址:<el-input v-model="queryParams.searchText" placeholder="请输入" size="small"
  140. style="width:200px;"></el-input>
  141. </div>
  142. <div style="margin:5px;">
  143. 联系电话:<el-input v-model="queryParams.searchText" placeholder="请输入" size="small"
  144. style="width:200px;"></el-input>
  145. </div>
  146. </div>
  147. </el-col>
  148. </el-row>
  149. </el-main>
  150. <el-footer style="text-align:right;padding-top:8px;">
  151. <el-button type="primary" icon="el-icon-check" @click="() => {
  152. this.pageInfo.current = 1
  153. this.bindList(true)
  154. }">确 定</el-button>
  155. <el-button icon="el-icon-close" @click="$refs.drawer.closeDrawer()">关 闭</el-button>
  156. </el-footer>
  157. </el-container>
  158. </el-drawer>
  159. </div>
  160. </template>
  161. <script>
  162. import '@/views/mis/common/assets/styles/misStyle.scss'
  163. import { DateHelper, FileHelper } from '@/views/mis/common/assets/scripts/utils.js'
  164. import { Customer } from '@/views/mis/common/api/customerManagement.js'
  165. import tfTable from '@/components/TableAuto/index.vue'
  166. import cpsSelect from '@/views/mis/common/components/cps-select.vue'
  167. import cpsCompany from '@/views/mis/common/components/cps-company.vue'
  168. import tfDetail from './customer-form.vue'
  169. export default {
  170. components: { cpsSelect, cpsCompany, tfTable, tfDetail },
  171. props: ['data'],
  172. data() {
  173. return {
  174. /* ----- 主页 ----- */
  175. cbpqRefresh: false,
  176. cbbRefresh: false,
  177. queryParams: {
  178. companyBranch: undefined,//公司
  179. mrArea: undefined,//片区
  180. mrBook: undefined,//抄表本
  181. searchText: undefined,//模糊查询
  182. //以下为高级查询附加参数
  183. customerState: undefined,//用户状态
  184. priceCode: undefined,//用水性质
  185. meterType: undefined,//水表类型
  186. createdDatetime_start: undefined,//开始建档日期
  187. createdDatetime_end: undefined//结束建档日期
  188. },
  189. disabledModify: true,
  190. disabledDelete: true,
  191. operationType: '',//编辑类型,'save','saveUpdate'
  192. pageInfo: { current: 1, size: 20, tableTotal: 1, 'orders[0].asc': 'true', 'orders[0].column': 'customerNo' }, // 分页数据
  193. columns: [
  194. {
  195. label: '所属片区',
  196. prop: 'mrAreaName',
  197. align: 'left'
  198. },
  199. {
  200. label: '所属表册',
  201. prop: 'mrBookName',
  202. align: 'left'
  203. },
  204. {
  205. label: '用户编号',
  206. prop: 'customerNo',
  207. align: 'center',
  208. sortable: true
  209. },
  210. {
  211. label: '用户姓名',
  212. prop: 'customerName',
  213. align: 'center'
  214. },
  215. {
  216. label: '用户地址',
  217. prop: 'customerAddress',
  218. align: 'left',
  219. sortable: true
  220. },
  221. {
  222. label: '联系电话',
  223. prop: 'customerPhone',
  224. align: 'center'
  225. },
  226. {
  227. label: '申请日期',
  228. prop: 'applyDatetime',
  229. align: 'center',
  230. sortable: true,
  231. formatter: function (row, column, value, index) {
  232. return DateHelper.formatterDate(value);
  233. }
  234. },
  235. {
  236. label: '建档日期',
  237. prop: 'createdDatetime',
  238. align: 'center',
  239. sortable: true,
  240. formatter: function (row, column, value, index) {
  241. return DateHelper.formatterDate(value);
  242. }
  243. },
  244. {
  245. label: '建档人员',
  246. prop: 'createdOname',
  247. align: 'center'
  248. },
  249. {
  250. label: '用户状态',
  251. prop: 'customerState',
  252. align: 'center',
  253. formatter: function (row, column, value, index) {
  254. if (value == '作废用户') {
  255. // return Object.assign({}, { 'background-color': '#CDCDCD', 'text-decoration': 'line-through' }, definedParams)
  256. return '<div><span class="el-tag el-tag--danger el-tag--light">' + value + '</span></div>'
  257. }
  258. return value;
  259. }
  260. }
  261. ],
  262. dataList: [], // 表格数据
  263. selectionsData: [], // 表格选中数据
  264. selectedRow: {}, //表格选中行
  265. /* ----- 详情页 ----- */
  266. dialogTitle: '新增',
  267. editState: false,//编辑状态,true:禁用;false:启用
  268. dialogVisible: false,
  269. detailData: {
  270. daCustomer: {
  271. companyBranch: [],
  272. mrArea: undefined,
  273. mrBook: undefined,
  274. customerNo: undefined,
  275. customerName: undefined,
  276. customerAddress: undefined,
  277. customerPhone: undefined,
  278. customerState: undefined,
  279. certType: undefined,
  280. certNo: undefined,
  281. applyDatetime: undefined,
  282. population: undefined,
  283. yearCumQuantity: undefined,//年度累计量
  284. month_cum_quantity: undefined,//月累积量
  285. createdDatetime: undefined,
  286. activateState: undefined,
  287. activateDatetime: undefined,
  288. payMode: undefined,
  289. contractState: undefined,
  290. contractDatetime: undefined,
  291. contractNo: undefined,
  292. homePhone: undefined,
  293. email: undefined,
  294. customerNameShort: undefined,
  295. sex: undefined,
  296. customerType: undefined,
  297. regionCode: undefined,
  298. remark: undefined,
  299. createdSerialNo: undefined,
  300. operatorCode: undefined,
  301. operatorName: undefined,
  302. operatorDatetime: undefined,
  303. createdOcode: undefined,
  304. createdOname: undefined
  305. },
  306. daMeter: {
  307. meterState: undefined,
  308. mrFrequency: undefined,
  309. priceCode: undefined,
  310. meterType: undefined,
  311. meterFactory: undefined,
  312. meterFactoryDatetime: undefined,
  313. meterModel: undefined,
  314. meterCaliber: undefined,
  315. meterNo: undefined,
  316. meterRange: undefined,
  317. meterPosition: undefined,
  318. meterBaseReading: undefined,
  319. meterCardNo: undefined,
  320. meterCardId: undefined,
  321. sewageFeeFlag: undefined,
  322. garbageFeeFlag: undefined,
  323. garbageFeeMode: undefined,
  324. garbageFeePrice: undefined,
  325. icState: undefined,
  326. icActivateDatetime: undefined,
  327. icId: undefined
  328. }
  329. },
  330. /* ----- 高级搜索 ----- */
  331. drawerDialog: false,
  332. dprCreatedDate: [],
  333. pickerOptions: {
  334. shortcuts: [{
  335. text: '最近一周',
  336. onClick(picker) {
  337. const end = new Date();
  338. const start = new Date();
  339. start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  340. picker.$emit('pick', [start, end]);
  341. }
  342. }, {
  343. text: '最近一个月',
  344. onClick(picker) {
  345. const end = new Date();
  346. const start = new Date();
  347. start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  348. picker.$emit('pick', [start, end]);
  349. }
  350. }, {
  351. text: '最近三个月',
  352. onClick(picker) {
  353. const end = new Date();
  354. const start = new Date();
  355. start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  356. picker.$emit('pick', [start, end]);
  357. }
  358. }]
  359. }
  360. }
  361. },
  362. watch: {
  363. selectedRow(value) {
  364. this.disabledModify = value == null;
  365. this.disabledDelete = value == null;
  366. },
  367. dialogVisible(newVal, oldVal) {
  368. if (!newVal) {
  369. this.resetDetailData()
  370. }
  371. }
  372. },
  373. created() {
  374. },
  375. mounted() {
  376. this.bindList();
  377. },
  378. methods: {
  379. /* ----- 方法 ----- */
  380. /**
  381. * @description 绑定列表
  382. * @param {Boolean} 是否高级查询(true:是,false:否),默认false
  383. */
  384. bindList(sfgjcx = false) {
  385. // 追加分页参数
  386. let params = Object.assign({}, this.pageInfo, this.queryParams);
  387. if (!sfgjcx) {
  388. params.customerState = undefined;
  389. params.priceCode = undefined;
  390. params.meterType = undefined;
  391. params.createdDatetime_start = undefined;
  392. params.createdDatetime_end = undefined;
  393. }
  394. this.dataList = []
  395. this.selectedRow = null;
  396. Customer.query(params).then((res) => {
  397. if (res.code !== 1) {
  398. this.$message.error('查询失败!')
  399. return
  400. }
  401. // 数据总数
  402. this.pageInfo.tableTotal = res.result.total
  403. this.dataList = res.result.records
  404. }).catch((ex) => {
  405. this.$message.error("查询失败!");
  406. }).finally(() => {
  407. });
  408. },
  409. resetDetailData() {
  410. // 表单数据
  411. for (var key in this.detailData) {
  412. if (this.detailData[key].constructor === Object) {
  413. for (var key2 in this.detailData[key]) {
  414. this.detailData[key][key2] = undefined;
  415. }
  416. } else {
  417. this.detailData[key] = undefined
  418. }
  419. }
  420. },
  421. save() {
  422. let params = Object.assign({}, this.detailData);
  423. params.daCustomer.operatorCode = this.$store.state.user.username;
  424. params.daCustomer.operatorName = this.$store.state.user.realName;
  425. params.daCustomer.operatorDatetime = DateHelper.getNowFormatDate(true);
  426. params.daCustomer.createdOcode = params.daCustomer.operatorCode;
  427. params.daCustomer.createdOname = params.daCustomer.operatorName;
  428. // switch处理
  429. if (params.daCustomer.activateState == '0') params.daCustomer.activateDatetime = undefined;
  430. if (params.daCustomer.contractState == '0') {
  431. params.daCustomer.contractNo = '';
  432. params.daCustomer.contractDatetime = undefined;
  433. }
  434. if (params.daMeter.garbageFeeFlag == '0') {
  435. params.daMeter.garbageFeeMode = '';
  436. params.daMeter.garbageFeePrice = 0.00;
  437. }
  438. if (params.daMeter.icState == '0') {
  439. params.daMeter.icId = undefined;
  440. params.daMeter.icActivateDatetime = undefined;
  441. }
  442. // console.log(JSON.stringify(params));
  443. Customer.cmdCustomerAndMeter(params, { operationType: this.operationType }).then(res => {
  444. if (res.code == 1) {
  445. this.bindList();
  446. this.$message.success("保存成功!");
  447. this.dialogVisible = false;
  448. }
  449. });
  450. },
  451. delete() {
  452. let params = {
  453. daCustomer: {
  454. customerNo: this.selectionsData[0].customerNo,
  455. customerState: '4'
  456. },
  457. daMeter: {
  458. meterCardId: this.selectionsData[0].meterCardId
  459. }
  460. }
  461. console.log(JSON.stringify(params));
  462. Customer.cmdCustomerAndMeter(params, { operationType: this.operationType }).then(res => {
  463. if (res.code == 1) {
  464. this.bindList();
  465. this.$message.success("作废成功!");
  466. }
  467. })
  468. },
  469. async export() {
  470. // 追加分页参数
  471. let params = Object.assign({}, this.queryParams);
  472. await Customer.exportFile(params).then((res) => {
  473. FileHelper.exportExcel(res, '用户档案信息.xlsx');
  474. }).catch((ex) => {
  475. this.$message.error("导出失败!");
  476. }).finally(() => {
  477. });
  478. },
  479. /**
  480. * @description 显示详情
  481. */
  482. showDetail(data) {
  483. this.selectedRow = data;
  484. var cbkh = '', cbkhList = this.selectedRow.cbkhList.split(',')
  485. if (cbkhList.length == 1) {
  486. cbkh = cbkhList[0]
  487. } else if (cbkhList.length > 1) {
  488. cbkh = cbkhList[0]
  489. this.$message('该用户存在多表,请在“水表档案管理”中进行多表查看。');
  490. }
  491. //查询用户
  492. Customer.queryCustomer(this.selectedRow.customerNo).then((res) => {
  493. if (res.code == 1) {
  494. this.detailData.daCustomer = res.result
  495. this.detailData.daCustomer.mrArea = this.detailData.daCustomer.mrArea.toString();
  496. this.detailData.daCustomer.mrBook = this.detailData.daCustomer.mrBook.toString();
  497. //查询表具
  498. Customer.queryMeter(this.selectedRow.customerNo, this.selectedRow.customerNo + cbkh).then((res) => {
  499. if (res.code == 1) {
  500. this.detailData.daMeter = res.result
  501. }
  502. this.operationType = 'saveUpdate';
  503. this.dialogTitle = "查看";
  504. this.editState = true;
  505. this.dialogVisible = true;// 显示弹窗
  506. }).catch((ex) => {
  507. this.$message.error("查询表具信息失败!");
  508. });
  509. }
  510. }).catch((ex) => {
  511. this.$message.error("查询用户信息失败!");
  512. });
  513. },
  514. /* ----- dom事件 ----- */
  515. changeGs(value) {
  516. this.queryParams.companyBranch = value;
  517. this.cbpqRefresh = !this.cbpqRefresh;
  518. this.queryParams.mrArea = '';
  519. this.changeCbpq(this.queryParams.mrArea);
  520. },
  521. changeCbpq(value) {
  522. this.cbbRefresh = !this.cbbRefresh;
  523. this.queryParams.mrBook = '';
  524. },
  525. /**
  526. * @description 查询
  527. */
  528. clickQuery() {
  529. this.pageInfo.current = 1
  530. this.bindList()
  531. },
  532. /**
  533. * @description 添加
  534. */
  535. clickAdd() {
  536. this.detailData.daCustomer.certType = "1";
  537. this.detailData.daCustomer.population = 3;
  538. this.detailData.daCustomer.yearCumQuantity = 0;
  539. this.detailData.daMeter.meterState = "1";
  540. this.detailData.daMeter.mrFrequency = "1";
  541. this.detailData.daMeter.meterBaseReading = 0;
  542. this.detailData.daMeter.garbageFeePrice = 0.00;
  543. this.detailData.daCustomer.customerType = '1';
  544. this.detailData.daCustomer.operatorName = this.$store.state.user.realName
  545. this.detailData.daCustomer.operatorDatetime = DateHelper.getNowFormatDate(true);
  546. this.operationType = 'save';
  547. this.dialogTitle = "添加";
  548. this.editState = false;
  549. this.dialogVisible = true;// 显示弹窗
  550. },
  551. /**
  552. * @description 修改
  553. */
  554. clickModify() {
  555. //this.selectedRow = this.selectionsData[0];
  556. if (this.selectedRow.customerState == '作废用户') {
  557. this.$message({
  558. message: '作废用户不能修改!',
  559. type: 'warning'
  560. });
  561. return;
  562. }
  563. var cbkhList = this.selectedRow.cbkhList.split(',')
  564. if (cbkhList.length == 1) {
  565. //查询用户
  566. Customer.queryCustomer(this.selectedRow.customerNo).then((res) => {
  567. if (res.code == 1) {
  568. this.detailData.daCustomer = res.result
  569. this.detailData.daCustomer.mrArea = this.detailData.daCustomer.mrArea.toString();
  570. this.detailData.daCustomer.mrBook = this.detailData.daCustomer.mrBook.toString();
  571. //查询表具
  572. Customer.queryMeter(this.selectedRow.customerNo, this.selectedRow.customerNo + cbkhList[0]).then((res) => {
  573. if (res.code == 1) {
  574. this.detailData.daMeter = res.result
  575. this.operationType = 'saveUpdate';
  576. this.dialogTitle = "修改";
  577. this.editState = false;
  578. this.dialogVisible = true;// 显示弹窗
  579. }
  580. }).catch((ex) => {
  581. this.$message.error("查询表具信息失败!");
  582. });
  583. }
  584. }).catch((ex) => {
  585. this.$message.error("查询用户信息失败!");
  586. });
  587. } else if (cbkhList.length > 1) {
  588. this.$message('该用户存在多表,请在“水表档案管理”中进行修改。');
  589. }
  590. },
  591. /**
  592. * @description 删除
  593. */
  594. clickDelete() {
  595. this.$confirm('确定作废吗?', '提示', {
  596. confirmButtonText: '确定',
  597. cancelButtonText: '取消',
  598. type: 'warning'
  599. }).then(() => {
  600. this.operationType = 'saveUpdate'
  601. this.delete();
  602. })
  603. },
  604. clickExport() {
  605. this.export();
  606. },
  607. clickCancel() {
  608. this.dialogVisible = false // 关闭弹窗
  609. },
  610. clickSave() {
  611. let flag = this.$refs.dForm.validate();
  612. if (flag) {
  613. // if (this.operationType) this.add();// 新增
  614. // else this.modify();// 修改
  615. this.save();
  616. }
  617. },
  618. /* ----- 组件事件 ----- */
  619. /**
  620. * @description 改变当前页
  621. */
  622. handleCurrentChange(current) {
  623. this.pageInfo.current = current
  624. this.bindList()
  625. },
  626. /**
  627. * @description 分页每页条数
  628. */
  629. handleSizeChange(size) {
  630. this.pageInfo.size = size
  631. this.bindList()
  632. },
  633. /**
  634. * @description 选择改变
  635. */
  636. handleSelectionChange(rows) {
  637. this.selectionsData = rows
  638. },
  639. //排序事件
  640. onCustomerSortChange(arrOrder) {
  641. this.pageInfo['orders[0].asc'] = arrOrder[0];
  642. this.pageInfo['orders[0].column'] = arrOrder[1];
  643. this.bindList();
  644. },
  645. handleRowClick(row) {
  646. this.selectedRow = row
  647. },
  648. /* ----- 高级搜索 ----- */
  649. advancedQuery(e) {
  650. this.drawerDialog = true;
  651. }
  652. }
  653. }
  654. </script>
  655. <style lang="scss" scoped></style>