sale-client 3.6.173 → 3.6.175

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,13 +18,7 @@ var devConfig = {
18
18
  },
19
19
  proxy: {
20
20
  '/rs/file': {
21
- target: localUrl
22
- },
23
- '/rs/logic/filemanage_fileSave': {
24
- target: "http://127.0.0.1:4523/m1/719967-0-default"
25
- },
26
- '/rs/downloadfile': {
27
- target: localUrl
21
+ target: serverRul
28
22
  },
29
23
  '/webapps': {
30
24
  target: serverRul
@@ -79,10 +73,13 @@ var devConfig = {
79
73
  target: serverRul
80
74
  },
81
75
  '/rs/logic': {
82
- target: localUrl
76
+ target: serverRul
83
77
  },
84
78
  '/rs/sql': {
85
- target: localUrl
79
+ target: serverRul
80
+ },
81
+ '/rs/entity': {
82
+ target: serverRul
86
83
  },
87
84
  '/webmeter': {
88
85
  target: serverRul
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.6.173",
3
+ "version": "3.6.175",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -622,7 +622,8 @@
622
622
  }
623
623
  },
624
624
  'model.f_payment' (val) {
625
- if (val == '免交') {
625
+ let _payment = this.$appdata.getSingleValue('需要输入业务单号的付款方式') || ''
626
+ if (val == '免交' || _payment.includes(val)) {
626
627
  this.mjshow = true
627
628
  } else if (val == '赠气' && (this.model.f_preamount || this.model.f_preamount != '')) {
628
629
  if (this.row.f_collection_type == '按气量') {
@@ -111,7 +111,7 @@
111
111
  <input id="f_collection" class="input_search" style="width:60%" type="number" v-model="model.f_collection"
112
112
  @blur="config.calculatePreByCollection && calculatePreByCollection()"
113
113
  @keyup.enter="checkInvoiceMsg((!$v.valid || validateOk || !islegal || clickConfirm))"
114
- v-el:sk v-scale="[model.f_collection, row.f_fee_decimal||4]" :disabled="!config.calculatePreByCollection && !config.quickSale">
114
+ v-el:sk v-scale="[model.f_collection, row.f_fee_decimal||4]" :disabled="!config.calculatePreByCollection ">
115
115
  </div>
116
116
  <div class="col-sm-1 form-group">
117
117
  <give-change :curbalance="curbalance" :collection.sync="model.f_collection" v-ref:givechange></give-change>
@@ -587,7 +587,8 @@
587
587
  this.getPrivilegeList()
588
588
  },
589
589
  'model.f_payment' (val) {
590
- if (val == '免交') {
590
+ let _payment = this.$appdata.getSingleValue('需要输入业务单号的付款方式') || ''
591
+ if (val == '免交' || _payment.includes(val)) {
591
592
  this.mjshow = true
592
593
  } else if (val == '赠气' && (this.model.f_preamount || this.model.f_preamount != '')) {
593
594
  if (this.row.f_collection_type == '按气量') {
@@ -743,10 +744,12 @@
743
744
  preamount () {
744
745
  if (this.model.f_preamount && this.model.f_preamount > 0) {
745
746
  try {
746
- preamountGen(this)
747
- if (this.config.quickSale) {
748
- this.$els.sk.focus()
749
- }
747
+ preamountGen(this).then((res) => {
748
+ if (this.config.quickSale) {
749
+ this.checkInvoiceMsg((!this.$v.valid || this.validateOk || !this.islegal || this.clickConfirm))
750
+ // this.$els.sk.focus()
751
+ }
752
+ })
750
753
  } catch (error) {
751
754
  this.$showAlert(`发卡售气划价错误,错误类型:${error}`, 'danger', 0)
752
755
  this.$dispatch('error', '发卡售气', this.model, error)
@@ -139,6 +139,16 @@
139
139
  close-on-select clear-button>
140
140
  </v-select>
141
141
  </div>
142
+ <div class="col-sm-4" v-if="!mjshow" >
143
+ <label for="f_serial_number" class=" font_normal_body">业务单号</label>
144
+ <input class="input_search" style="width:60%" type="text"
145
+ v-model="model.f_serial_number" placeholder="业务单号">
146
+ </div>
147
+ <div class="col-sm-4" v-if="mjshow" :class="[$v.f_serial_number.required || $v.f_serial_number.dctest ? 'has-error' : 'has-success']">
148
+ <label for="f_serial_number" class=" font_normal_body">业务单号</label>
149
+ <input class="input_search" style="width:60%" type="text" v-validate:f_serial_number='{required: true }'
150
+ v-model="model.f_serial_number" placeholder="业务单号">
151
+ </div>
142
152
  <div class="col-sm-8">
143
153
  <label for="f_comments" class=" font_normal_body">&nbsp;备&emsp;&emsp;注</label>
144
154
  <input type="text" class="input_search" style="width:80%" v-model="model.f_comments" rows="1"
@@ -326,6 +336,7 @@ export default {
326
336
  otherdetail: [{f_brand_spec: [''], typeNameList: [], f_typenumber: '', typenumberList: [], f_unitprice: '', f_number: ''}]
327
337
  },
328
338
  eticket_msg: false,
339
+ mjshow: false,
329
340
  eticket_show: false,
330
341
  invoice_is_pax: '征税',
331
342
  is_pax: [{label: '征税', value: '征税'}, {label: '不征税', value: '不征税'}],
@@ -362,6 +373,10 @@ export default {
362
373
  if (val[0]) {
363
374
  this.userfees(this.row.f_userinfo_id, val[0])
364
375
  }
376
+ },
377
+ 'model.f_payment' (val) {
378
+ let _payment = this.$appdata.getSingleValue('需要输入业务单号的付款方式') || ''
379
+ this.mjshow = (val === '免交' || _payment.includes(val))
365
380
  }
366
381
  },
367
382
  events: {
@@ -652,7 +652,8 @@ let asyncMachineMeterCenter = async function (self) {
652
652
  'data.f_payment' (val) {
653
653
  this.getPrivilegeList()
654
654
  // 根据付款方式增加业务单号
655
- if (val == '免交') {
655
+ let _payment = this.$appdata.getSingleValue('需要输入业务单号的付款方式') || ''
656
+ if (val == '免交' || _payment.includes(val)) {
656
657
  this.mjshow = true
657
658
  } else {
658
659
  this.mjshow = false
@@ -14,7 +14,7 @@
14
14
  <div class="col-sm-2 form-group">
15
15
  <label class="font_normal_body" for="f_user_name">客户姓名</label>
16
16
  <input id="f_user_name" type="text" class="input_search" style="width: 60%" v-model="model.f_user_name"
17
- condition="f_user_name like '{}'" placeholder='请输入要查询的客户姓名'>
17
+ condition="f_user_name like '%{}%'" placeholder='请输入要查询的客户姓名'>
18
18
  </div>
19
19
  <div class="col-sm-2 form-group">
20
20
  <label class="font_normal_body" for="f_insurance_type">险&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;种</label>
@@ -61,6 +61,61 @@
61
61
  close-on-select clear-button>
62
62
  </v-select>
63
63
  </div>
64
+ <div class="col-sm-2 form-group">
65
+ <label class="font_normal_body" for="f_state">收款方式</label>
66
+ <v-select id="f_state"
67
+ v-model="model.f_payment"
68
+ placeholder='请选择'
69
+ condition="f_payment ='{}'"
70
+ :value.sync="model.f_payment"
71
+ :options='$parent.$parent.payment'
72
+ close-on-select clear-button>
73
+ </v-select>
74
+ </div>
75
+ <div class="col-sm-2 form-group">
76
+ <label class="font_normal_body" for="f_user_name">客户地址</label>
77
+ <input id="f_address" type="text" class="input_search" style="width: 60%" v-model="model.f_address"
78
+ condition="f_address like '%{}%'" placeholder='请输入要查询的客户地址'>
79
+ </div>
80
+ <div class="col-sm-2 form-group">
81
+ <label class="font_normal_body" for="f_user_name">客户电话</label>
82
+ <input id="f_user_phone" type="text" class="input_search" style="width: 60%" v-model="model.f_user_phone"
83
+ condition="f_user_phone like '%{}%'" placeholder='请输入要查询的客户电话'>
84
+ </div>
85
+ <div class="col-sm-2 form-group">
86
+ <label class="font_normal_body" for="f_user_name">身份证号</label>
87
+ <input id="f_idnumber" type="text" class="input_search" style="width: 60%" v-model="model.f_idnumber"
88
+ condition="f_idnumber like '%{}%'" placeholder='请输入要查询的身份证号'>
89
+ </div>
90
+ <div class="col-sm-2 form-group">
91
+ <label class="font_normal_body" for="f_user_name">保险单号</label>
92
+ <input id="f_ins_number" type="text" class="input_search" style="width: 60%" v-model="model.f_ins_number"
93
+ condition="f_ins_number like '%{}%'" placeholder='请输入要查询的保险单号'>
94
+ </div>
95
+ <div class="col-sm-2 form-group">
96
+ <label class="font_normal_body" for="f_user_name">备注信息</label>
97
+ <input id="f_comments" type="text" class="input_search" style="width: 60%" v-model="model.f_comments"
98
+ condition="f_comments like '%{}%'" placeholder='请输入要查询的备注信息'>
99
+ </div>
100
+ <div class="col-sm-2 form-group">
101
+ <label class="font_normal_body">开始时间</label>
102
+ <datepicker :format="'yyyy-MM-dd'"
103
+ :value.sync="model.f_ins_start_date"
104
+ placeholder="缴费开始时间"
105
+ condition="f_operate_date >= '{}'"
106
+ v-model="model.f_ins_start_date" style="width: 55%">
107
+ </datepicker>
108
+ </div>
109
+ <div class="col-sm-2 form-group">
110
+ <label class="font_normal_body">结束时间</label>
111
+ <datepicker :format="'yyyy-MM-dd'"
112
+ :value.sync="model.f_expiration_date"
113
+ placeholder="缴费结束时间"
114
+ condition="f_operate_date <= '{}'"
115
+ v-model="model.f_expiration_date" style="width: 55%">
116
+ </datepicker>
117
+ </div>
118
+
64
119
  </div>
65
120
  </div>
66
121
 
@@ -251,6 +306,7 @@
251
306
  },
252
307
  f_state: '',
253
308
  state: this.$appdata.getParam('保险状态') ? this.$appdata.getParam('保险状态') : [],
309
+ payment: this.$appdata.getParam('收费方式') ? this.$appdata.getParam('收费方式') : [],
254
310
  f_insurance_type: '',
255
311
  insuranceType: this.$appdata.getParam('险种') ? this.$appdata.getParam('险种') : [],
256
312
  orgCondtionStr: '',
@@ -119,7 +119,7 @@
119
119
  </button>
120
120
  </div>
121
121
  <!--<upload :blodid="blodid" isremark="true" fusetype="过户"></upload>-->
122
- <upload :blodid="blodid" v-if="config.showupload" :businessid="randomBusinessId" isremark="true" fusetype="过户管理"></upload>
122
+ <upload :blodid="blodid" v-if="config.showupload" v-on:confirminfo="confirmIdCard" :businessid="randomBusinessId" isremark="true" fusetype="过户管理"></upload>
123
123
  </validator>
124
124
  </div>
125
125
  <modal v-if="loaduserflag" :show.sync="loaduserflag" width="80%" title="过户资产信息" v-ref:modal large backdrop="false">
@@ -219,6 +219,8 @@
219
219
  f_transfer_fees: this.$appdata.getSingleValue('过户费') ? this.$appdata.getSingleValue('过户费') : '',
220
220
  // f_transfer_fees: '',
221
221
  f_newbank_accopen: '',
222
+ f_newuser_name: '',
223
+ f_newidnumber: '',
222
224
  f_newbank_name: ''
223
225
  },
224
226
  transferdata: {
@@ -262,6 +264,11 @@
262
264
  },
263
265
 
264
266
  methods: {
267
+ confirmIdCard (msg) {
268
+ console.log(msg)
269
+ this.model.f_newuser_name = msg.strName
270
+ this.model.f_newidnumber = msg.strID
271
+ },
265
272
  getRandomId () {
266
273
  this.randomBusinessId = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
267
274
  let res = Math.random() * 16 | 0
@@ -129,6 +129,17 @@
129
129
  <input type="text" style="width:60%" class="input_search" v-model="model.f_meternumber"
130
130
  condition="f_meternumber = '{}' " placeholder="表号">
131
131
  </div>
132
+ <div class="col-sm-2 form-group">
133
+ <label class="font_normal_body">机表未抄期数</label>
134
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_hand_month"
135
+ condition="f_hand_month >= '{}' " placeholder="机表未抄期数">
136
+ </div>
137
+ <div class="col-sm-2 form-group">
138
+ <label class="font_normal_body">物联未报天数</label>
139
+ <input type="text" style="width:60%" class="input_search" v-model="model.f_webhand_day"
140
+ condition="f_webhand_day >= '{}' " placeholder="物联未报天数">
141
+ </div>
142
+
132
143
 
133
144
  <!--表册片区-->
134
145
  <!--<div class="col-sm-2 form-group">-->
@@ -57,6 +57,24 @@
57
57
  close-on-select clear-button>
58
58
  </v-select>
59
59
  </div>
60
+ <div class="col-sm-2 form-group">
61
+ <label class="font_normal_body">开始时间</label>
62
+ <datepicker :format="'yyyy-MM-dd'"
63
+ :value.sync="model.f_ins_start_date"
64
+ placeholder="缴费开始时间"
65
+ condition="f_operate_date >= '{}'"
66
+ v-model="model.f_ins_start_date" style="width: 55%">
67
+ </datepicker>
68
+ </div>
69
+ <div class="col-sm-2 form-group">
70
+ <label class="font_normal_body">结束时间</label>
71
+ <datepicker :format="'yyyy-MM-dd'"
72
+ :value.sync="model.f_expiration_date"
73
+ placeholder="缴费结束时间"
74
+ condition="f_operate_date <= '{}'"
75
+ v-model="model.f_expiration_date" style="width: 55%">
76
+ </datepicker>
77
+ </div>
60
78
  </div>
61
79
  </div>
62
80
 
@@ -72,6 +72,10 @@ export default {
72
72
  data () {
73
73
  return {
74
74
  cameraurl: '',
75
+ IdCardInfo: {
76
+ name: '',
77
+ cardId: ''
78
+ },
75
79
  jd: 'transform:rotate(0deg)',
76
80
  degs: 0
77
81
  }
@@ -930,8 +934,10 @@ export default {
930
934
  },
931
935
  confirmIdCard () {
932
936
  let param = this.IdCardInfo
933
- param.strName=this.IdCardInfo.name
934
- param.strID=this.IdCardInfo.cardID
937
+ param.strName = this.IdCardInfo.name
938
+ param.strID = this.IdCardInfo.cardID
939
+ // param.strName = '测试'
940
+ // param.strID = '123'
935
941
  this.$emit('confirminfo', param)
936
942
  this.IdCardInfo = {}
937
943
  }
@@ -0,0 +1,599 @@
1
+ <template>
2
+ <div style="background-color: #FFFFFF;">
3
+ <div class=" col-sm-12"
4
+ style="background-color: #FFFFFF;height: auto;border-radius: 8px">
5
+ <div style="position: relative;height: 34px;width:75%;margin: 30px auto 10px auto;">
6
+ <div class="inpGroup" v-if="isremark" style="position:absolute;left: 0px;">
7
+ <input v-model="headers.fremarks" style="width:70%" class="input_search" placeholder="文件说明"/>
8
+ </div>
9
+ <div style="position:absolute;right:10%;">
10
+ <button class="button_search btn-gn" @click="upload()" v-show="!takeimg" >拍照</button>
11
+ <button class="button_search btn-gn" @click="fileUpload()" v-show="!isupload" >审核资料上传</button>
12
+ </div>
13
+ <high-meter :show.sync="showhighmeter" @photo-finish="newPhoto" v-if="showhighmeter" v-on:confirminfo="confirmIdCard"></high-meter>
14
+ <div v-if="isusetype">
15
+ <v-select class="inp_button2" type="button" placeholder="使用类型" :options="foptions"
16
+ :value.sync="useType" v-model="useType"></v-select>
17
+ </div>
18
+ </div>
19
+ <hr style="width: 90%;margin: 0px auto;border: #999999 1px solid;margin-top: 20px"/>
20
+ <div class="showList col-sm-12" style="padding: 10px;margin-top: 20px">
21
+ <div :class="cols ? cols : 'col-sm-6'" style="padding:10px 10px 0px 10px;height: auto;box-sizing: border-box"
22
+ v-for="row in fileInfoData">
23
+ <div class="showData">
24
+ <div class="left">
25
+ <a href="#" class="thumbnail" style="width:100%;height:100%" >
26
+ <img v-if="(row.f_filetype.toLowerCase()==='jpg'||row.f_filetype.toLowerCase()==='png'||row.f_filetype.toLowerCase()==='gif'||row.f_filetype.toLowerCase()==='bmp')&&!rotating" :src="row.f_downloadURL" alt="..."/>
27
+ <img-self v-if="(row.f_filetype.toLowerCase()==='jpg'||row.f_filetype.toLowerCase()==='png'||row.f_filetype.toLowerCase()==='gif'||row.f_filetype.toLowerCase()==='bmp')&&rotating" :width="width?width:60" :height="height?height:60" :src="row.f_downloadURL" alt="..."></img-self>
28
+ <img v-if="row.f_filetype.toLowerCase()==='pdf'" src="../../../static/mainicon/pdf.jpg" alt="" style="width:66%"/>
29
+ <img-self v-if="row.f_filetype.toLowerCase()==='pdf'&&rotating" :width="width?width:60" :height="height?height:60" src="../../../static/mainicon/pdf.jpg" alt="..."></img-self>
30
+ <img v-if="row.f_filetype.toLowerCase()==='xls'||row.f_filetype.toLowerCase()==='xlsx'" src="../../../static/mainicon/excel.jpg" alt="" style="width:66%"/>
31
+ <img-self v-if="row.f_filetype.toLowerCase()==='xls'||row.f_filetype.toLowerCase()==='xlsx'&&rotating" :width="width?width:60" :height="height?height:60" src="../../../static/mainicon/excel.jpg" alt="..."></img-self>
32
+ <img v-if="row.f_filetype.toLowerCase()==='doc'||row.f_filetype.toLowerCase()==='docx'" src="../../../static/mainicon/doc.jpg" alt="" style="width:66%"/>
33
+ <img-self v-if="row.f_filetype.toLowerCase()==='doc'||row.f_filetype.toLowerCase()==='docx'&&rotating" :width="width?width:60" :height="height?height:60" src="../../../static/mainicon/doc.jpg" alt="..."></img-self>
34
+ </a>
35
+ </div>
36
+ <div class="right">
37
+ <p :title="row.f_uploaddate" class="top clears"><strong>上传时间</strong>:&nbsp;<span>{{row.f_uploaddate}}</span></p>
38
+ <p :title="row.f_username" class="top clears"><strong>操作员</strong>:&nbsp;<span>{{row.f_username}}</span></p>
39
+ <p :title="row.f_filename" class="top clears"><strong>文件名</strong>:&nbsp;{{row.f_filename}}</p>
40
+ <p :title="row.fremarks" class="top clears"><strong>文件说明</strong>:&nbsp;{{row.fremarks}}</p>
41
+ <p>
42
+ <a v-if="row.f_filetype.toLowerCase()==='jpg'||row.f_filetype.toLowerCase()==='png'||row.f_filetype.toLowerCase()==='gif'||row.f_filetype.toLowerCase()==='bmp'" :href="row.f_downloadURL" style="background:#6aa6e2" class="btn btn-primary" target="_blank" role="button">预览</a>
43
+ <button class="button_search btn-gn" v-if="row.f_filetype.toLowerCase()==='pdf'||row.f_filetype.toLowerCase()==='xls'||row.f_filetype.toLowerCase()==='xlsx'||row.f_filetype.toLowerCase()==='doc'||row.f_filetype.toLowerCase()==='docx'" @click="downloadfile(row.f_downloadURL)" >下载</button>
44
+ <a v-if="isDelete == '1'" @click="delet($index,row)" href="#" class="btn btn-default" role="button">删除</a>
45
+ </p>
46
+ </div>
47
+ </div>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ <modal :show.sync="showUpload" styles="border-radius:20px;margin-top:300px" v-ref:modal backdrop="false" :width="700" >
52
+ <header slot="modal-header" class="modal-header">
53
+ <button type="button" class="close" @click="close"><span class="glyphicon glyphicon-remove"></span></button>
54
+ <h4 class="modal-title" style="text-align: center">文件上传</h4>
55
+ </header>
56
+ <article slot="modal-body" class="modal-body">
57
+ <div class="form-group">
58
+ <file-upload style="margin-left:100px;padding-top:20px" class="my-file-uploader" :name="'myFile' + blodid"
59
+ action="rs/file/uploadFile" tagname="文件上传" :headers="headers" multiple v-ref:file></file-upload>
60
+ </div>
61
+ </article>
62
+ <footer slot="modal-footer" class="modal-footer">
63
+ </footer>
64
+ </modal>
65
+ </div>
66
+ </template>
67
+ <script>
68
+ import { HttpResetClass } from 'vue-client'
69
+ //import HttpResetClass from '../plugins/HttpResetClass'
70
+ import Vue from "vue";
71
+
72
+ export default {
73
+ title: "附件",
74
+ props: ['blodid','businessid','isremark', 'isusetype','takeimg','defname','isupload','fusetype','cols','width','height'],
75
+ data() {
76
+ return {
77
+ isDelete: '0', // 删除按钮,可以进行控制(权限等)
78
+ fileInfoData: [], // 数据库存储的文件记录对象数组
79
+ headers: {'username': this.$login.f.name, 'blodid': '','businessid':'', 'fremarks': '','defname':'','fusetype':this.fusetype?this.fusetype:''}, // 调用rs/file/uploadFile 的参数
80
+ showUpload: false, // 上传模态框控制
81
+ showhighmeter: false, // 高拍仪组件控制
82
+ useType: '', // 使用类型
83
+ fileRemark: '', // 文件说明
84
+ rotating: this.$appdata.getSingleValue('图片附加功能') // 文件是否旋转
85
+ }
86
+ },
87
+ methods: {
88
+ confirmIdCard (IdCardInfo) {
89
+ this.showhighmeter = !this.showhighmeter
90
+ console.log(IdCardInfo)
91
+ if(IdCardInfo && IdCardInfo.strID){
92
+ this.$emit('confirminfo', IdCardInfo)
93
+ }
94
+ },
95
+ // 查询按钮事件
96
+ delet(index, row) {
97
+ this.$resetdelete('rs/entity/t_files', {id: row.id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
98
+ this.$dispatch("delResid",row.id)
99
+ this.fileInfoData.splice(index, 1)
100
+ })
101
+ },
102
+ downloadfile(filepath){
103
+
104
+ var link = document.createElement('a');
105
+ // let pathName = "http://" + location.host + filepath;
106
+ link.href = filepath;
107
+ link.target='_blank'
108
+ link.dispatchEvent(new MouseEvent('click'));
109
+ },
110
+ GetRequest() {
111
+ var url = location.search;
112
+ var theRequest = new Object();
113
+ if (url.indexOf("?") != -1) {
114
+ var str = url.substr(1);
115
+ let strs = str.split("&");
116
+ for (var i = 0; i < strs.length; i++) {
117
+ theRequest[strs[i].split("=")[0]] = decodeURIComponent(strs[i].split("=")[1]);
118
+ }
119
+ }
120
+ return theRequest;
121
+ },
122
+ upload() {
123
+
124
+ if(this.showhighmeter){
125
+ console.log(this,'测试')
126
+ this.$refs.ltgao.closeVideo()
127
+ }
128
+ console.log('测试1')
129
+ this.showhighmeter = !this.showhighmeter
130
+ },
131
+ async load(self) {
132
+ let condition=''
133
+ if(this.businessid){
134
+ condition = `f_businessid= '${self.headers.businessid}' `
135
+ }else{
136
+ condition = `f_blobid= '${self.headers.blodid}' `
137
+ }
138
+ if(this.fusetype){
139
+ condition += ` and fusetype like '%${this.fusetype}%'`
140
+ }
141
+ var http = new HttpResetClass()
142
+ let data = {
143
+ condition: condition
144
+ }
145
+ let getFile = []
146
+ try {
147
+ getFile = await http.load('POST', 'rs/sql/getFiles', {data: data}, {
148
+ warnMsg: null,
149
+ resolveMsg: null
150
+ })
151
+ } catch (e) {
152
+ console.log(e)
153
+ }
154
+ for (var i = 0; i < getFile.data.length; i++) {
155
+ // 如果使用类型包含导入字样,则是execl文件导入的,不做显示
156
+ if(getFile.data[i].fusetype&&(getFile.data[i].fusetype.includes('execl导入'))){
157
+ getFile.data.splice(i,1)
158
+ i--
159
+ continue
160
+ }
161
+ let temp = getFile.data[i].f_downloadpath
162
+ let URL = temp.substring(temp.lastIndexOf(":\\") + 2)
163
+ var xy=this.$appdata.getSingleValue('协议')?this.$appdata.getSingleValue('协议'):"http://"
164
+ getFile.data[i].f_downloadURL = xy+ location.host + "/" + URL
165
+ }
166
+ self.fileInfoData = []
167
+ self.fileInfoData = getFile.data
168
+ },
169
+ // 数据库时间格式化
170
+ formatdate(val) {
171
+ //20180914151603 : 2018-09-14 15:16:03
172
+ if (val.length != 14)
173
+ return
174
+ let year = val.substr(0, 4)
175
+ let month = val.substr(4, 2)
176
+ let day = val.substr(6, 2)
177
+ let hour = val.substr(8, 2)
178
+ let min = val.substr(10, 2)
179
+ let second = val.substr(12, 2)
180
+ return year + '-' + month + '-' + day + ' ' + hour + ':' + min + ':' + second
181
+ },
182
+ // 打开文件上传对话框
183
+ fileUpload() {
184
+ this.showUpload = true
185
+ },
186
+ // 关闭文件上传对话框
187
+ close() {
188
+ this.showUpload = false
189
+ // 将选的文件清空
190
+ this.$refs.file.$el.querySelector('input').value = ''
191
+ this.load(this)
192
+ },
193
+ convertBase64ToBlob(base64String) {
194
+ // 将base64解码
195
+ var bytes = atob(base64String);
196
+ //var bytes = base64;
197
+ var bytesCode = new ArrayBuffer(bytes.length);
198
+ // 转换为类型化数组
199
+ var byteArray = new Uint8Array(bytesCode);
200
+
201
+ // 将base64转换为ascii码
202
+ for (var i = 0; i < bytes.length; i++) {
203
+ byteArray[i] = bytes.charCodeAt(i);
204
+ }
205
+ // 生成Blob对象(文件对象)
206
+ return new Blob([bytesCode], {type: 'image/jpeg'});
207
+ },
208
+ newPhoto(Imgbase64) {
209
+ let form = new FormData()
210
+ let xhr = new XMLHttpRequest()
211
+ let formDataBoundary = "----WebkitFormBoundary" + "GaoPaiYi";
212
+ form.append('Content-Type', 'multipart/form-data;boundary=' + formDataBoundary)
213
+ form.append('file', this.convertBase64ToBlob(Imgbase64), "GaoPaiYi.jpg")
214
+ xhr.open("POST", "rs/file/uploadFile")
215
+
216
+ if (this.headers) {
217
+ for (var header in this.headers) {
218
+ xhr.setRequestHeader(header, encodeURIComponent(this.headers[header]))
219
+ }
220
+ }
221
+ if (Vue.$login && Vue.$login.jwt) {
222
+ xhr.setRequestHeader('Authorization', 'Bearer ' + Vue.$login.jwtNew)
223
+ xhr.setRequestHeader('Token', Vue.$login.jwt)
224
+ }
225
+ xhr.send(form)
226
+ setTimeout(() => {
227
+ this.load(this)
228
+ }, 5000)
229
+ }
230
+ },
231
+ ready() {
232
+ if (this.$login.r.find(value => value == '上传附件删除')) {
233
+ // 有删除权限
234
+ this.isDelete = '1'
235
+ }
236
+ this.headers.blodid = this.blodid
237
+ this.headers.businessid = this.businessid
238
+ console.log('123222', this.businessid)
239
+ if (this.blodid||this.businessid) {
240
+ this.load(this)
241
+ }
242
+ },
243
+ watch: {
244
+ 'blodid'(val) {
245
+ if (val) {
246
+ console.log('观察blodid', val)
247
+ this.headers.blodid = this.blodid
248
+ this.load(this)
249
+ }
250
+ },
251
+ 'businessid'(val) {
252
+ console.log('观察businessid')
253
+ if (val) {
254
+ console.log('观察businessid', val)
255
+ this.headers.businessid = this.businessid
256
+ this.load(this)
257
+ }
258
+ },
259
+ 'useType'() {
260
+ this.headers.fusetype = this.useType[0] ? this.useType[0] : ''
261
+ },
262
+ 'defname'() {
263
+ this.headers.defname=this.defname
264
+ }
265
+ },
266
+ computed: {
267
+ foptions() {
268
+ return this.$appdata.getParam('使用类型')
269
+ },
270
+ },
271
+ events: {
272
+ onFileUpload: function (file, res) {
273
+ console.log("上传完毕",res)
274
+ this.$dispatch("resid",res.id)
275
+ this.headers.fremarks=''
276
+ this.close()
277
+ }
278
+ }
279
+ }
280
+ </script>
281
+ <style scoped>
282
+
283
+ * {
284
+ padding: 0px;
285
+ margin: 0px;
286
+ }
287
+
288
+ .inpGroup {
289
+ position: absolute;
290
+ left: 0px;
291
+ right: 220px;
292
+ font-family: "微软雅黑";
293
+ }
294
+
295
+ .navWin {
296
+ position: relative;
297
+ }
298
+
299
+ .navWin .navShow {
300
+ margin-top: 5px;
301
+ height: 34px;
302
+ font-size: 20px;
303
+ line-height: 34px;
304
+ color: rgb(180, 180, 180);
305
+ }
306
+
307
+ .navWin .navShow span {
308
+ display: inline-block;
309
+ height: 34px;
310
+ }
311
+
312
+ .navWin .navShow .icon {
313
+ height: 34px;
314
+ margin-right: 10px;
315
+ color: rgb(200, 200, 200);
316
+ }
317
+
318
+ .navWin .navList {
319
+ position: absolute;
320
+ width: 100%;
321
+ z-index: 99;
322
+ list-style: none;
323
+ background-color: rgba(241, 241, 241, 0.9);
324
+ line-height: 34px;
325
+ color: #8d8d8d;
326
+ visibility: hidden;
327
+ }
328
+
329
+ .navWin:hover .navList {
330
+ visibility: visible;
331
+ }
332
+
333
+ .navWin .navList li {
334
+ font-size: 18px;
335
+ padding-left: 30px;
336
+ }
337
+
338
+ .navWin .navList li:hover {
339
+ background-color: rgba(220, 220, 220, 0.9);
340
+ }
341
+
342
+ .inp {
343
+ box-sizing: border-box;
344
+ width: 79%;
345
+ padding: 0px 10px;
346
+ height: 34px;
347
+ font-size: 14px;
348
+ line-height: 36px;
349
+ color: #999999;
350
+ border: solid 1px #c1c1c1;
351
+ border-radius: 2px;
352
+ background: none;
353
+ outline: none;
354
+ }
355
+
356
+ .inp::-webkit-input-placeholder {
357
+ color: #999999;
358
+ }
359
+
360
+ .inp_button {
361
+ float: right;
362
+ margin-left: 10px;
363
+ /* position: absolute;
364
+ right: 35px;
365
+ height: 40px;*/
366
+ width: 100px;
367
+ font-size: 14px;
368
+ line-height: 34px;
369
+ color: #ffffff;
370
+ text-align: center;
371
+ background-color: rgb(90, 180, 90);
372
+ border-radius: 4px;
373
+ cursor: pointer;
374
+ }
375
+
376
+ .btn-group {
377
+ height: 34px;
378
+ }
379
+
380
+ .inp_button2 {
381
+ float: right;
382
+ margin-left: 10px;
383
+ /* position: absolute;
384
+ right: 35px;
385
+ height: 40px;*/
386
+ width: auto;
387
+ font-size: 16px;
388
+ line-height: 34px;
389
+ color: #ffffff;
390
+ text-align: center;
391
+ border-radius: 4px;
392
+ cursor: pointer;
393
+ }
394
+
395
+ .inp_button:hover {
396
+ /*background-color: rgb(80, 150, 80);*/
397
+ }
398
+
399
+ .inp_button:active {
400
+ font-size: 20px;
401
+ /*background-color: rgb(150, 200, 150);*/
402
+ }
403
+
404
+ .showData {
405
+ height: auto;
406
+ position: relative;
407
+ padding-bottom: 7px;
408
+ border-bottom: solid 1px #c1c1c1;
409
+ font-family: "微软雅黑";
410
+ }
411
+
412
+ .showData .left {
413
+ height: 180px;
414
+ width: 210px;
415
+ background-color: rgb(240, 240, 240);
416
+ overflow: hidden;
417
+ line-height: 180px;
418
+ }
419
+
420
+ .showData .left img {
421
+ width: 100%;
422
+ height: auto;
423
+ }
424
+
425
+ .showData .right {
426
+ position: absolute;
427
+ top: 0px;
428
+ left: 220px;
429
+ right: 0px;
430
+ height: 180px;
431
+ }
432
+
433
+ .showData .right .top {
434
+ height: 30px;
435
+ line-height: 30px;
436
+ color: rgb(98, 98, 98);
437
+ }
438
+
439
+ .showData .right .top .topleft {
440
+ float: left;
441
+ font-size: 16px;
442
+ margin-right: 20px;
443
+ }
444
+
445
+ .showData .right .top .topright {
446
+ float: right;
447
+ margin-left: 20px;
448
+ }
449
+
450
+ .showData .right .text {
451
+ word-wrap: break-word;
452
+ overflow: hidden;
453
+ /*height: 100px;*/
454
+ color: #999999;
455
+ /*padding: 8px 0px;*/
456
+ }
457
+
458
+ .showData .right ul {
459
+ height: 20px;
460
+ padding: 0px;
461
+ margin: 0px;
462
+ font-size: 0px;
463
+ }
464
+
465
+ .showData .right ul li {
466
+ display: inline-block;
467
+ height: 20px;
468
+ list-style: none;
469
+ font-size: 16px;
470
+ line-height: 20px;
471
+ padding: 0px 7px;
472
+ margin-right: 10px;
473
+ cursor: pointer;
474
+ background-color: none;
475
+ font-weight: bold;
476
+ color: #006fa3;
477
+ }
478
+
479
+ .showData .right ul li:hover {
480
+ color: #006fb3;
481
+ }
482
+
483
+ .showData .right ul li:active {
484
+ color: #006fb3;
485
+ }
486
+
487
+ .showData .right ul li a {
488
+ width: 100%;
489
+ height: 100%;
490
+ text-decoration: none;
491
+ color: #FFFFFF;
492
+ }
493
+
494
+ body {
495
+ color: black;
496
+ }
497
+
498
+ .search {
499
+ width: 75%;
500
+ margin: 10px auto 30px auto;
501
+ }
502
+
503
+ .search .searchAll {
504
+ height: 34px;
505
+ font-size: 18px;
506
+ color: #999999;
507
+ line-height: 34px;
508
+ }
509
+
510
+ .search .searchAll span {
511
+ display: inline-block;
512
+ width: 15px;
513
+ height: 15px;
514
+ border: #999999 1px solid;
515
+ position: relative;
516
+ top: 2px;
517
+ }
518
+
519
+ .search .searchAll .spanAll {
520
+ background-color: rgb(90, 180, 90);
521
+ }
522
+
523
+ .search .itemList {
524
+ font-size: 16px;
525
+ color: #999999;
526
+ line-height: 34px;
527
+ }
528
+
529
+ .search .itemList .item {
530
+ height: 34px;
531
+ position: relative;
532
+ }
533
+
534
+ .search .itemList .item .descript {
535
+ display: inline-block;
536
+ width: 80px;
537
+ }
538
+
539
+ .search .itemList .item .inputBox {
540
+ height: 30px;
541
+ position: absolute;
542
+ top: 0px;
543
+ left: 80px;
544
+ right: 20px;
545
+ }
546
+
547
+ .search .itemList .item .inputBox input {
548
+ width: 100%;
549
+ height: 100%;
550
+ outline: none;
551
+ padding: 0px 5px;
552
+ }
553
+
554
+ .search .itemList .item .inputBox input::-webkit-input-placeholder {
555
+ color: #999999;
556
+ }
557
+
558
+ .searchItem {
559
+ height: 30px;
560
+ position: absolute;
561
+ top: 0px;
562
+ left: 80px;
563
+ right: 20px;
564
+ }
565
+
566
+ .searchItem .show {
567
+ padding-left: 10px;
568
+ }
569
+
570
+ .searchItem ul {
571
+ position: relative;
572
+ list-style: none;
573
+ background-color: none;
574
+ font-weight: bold;
575
+ color: #006fa3;
576
+
577
+ z-index: 99;
578
+ visibility: hidden;
579
+ }
580
+
581
+ .searchItem ul li {
582
+ padding-left: 10px;
583
+ }
584
+
585
+ .searchItem:hover ul {
586
+ visibility: visible;
587
+ }
588
+
589
+ .searchItem ul li:hover {
590
+ color: #006fb1;
591
+ }
592
+ .clears{
593
+ overflow:hidden;
594
+
595
+    text-overflow:ellipsis;
596
+
597
+    white-space:nowrap;
598
+ }
599
+ </style>
@@ -18,6 +18,7 @@ export default function () {
18
18
  // 机表抄表
19
19
  Vue.component('high-meter', (resolve) => { require(['./HighMeterCard'], resolve) })
20
20
  Vue.component('upload-idcard', (resolve) => { require(['./UploadIdCard'], resolve) })
21
+ Vue.component('upload', (resolve) => { require(['./Upload'], resolve) })
21
22
  // 换表
22
23
  Vue.component('change-meter', (resolve) => { require(['./revenue/newchangemeter/ChangeMeter'], resolve) })
23
24
  // 清零
@@ -612,7 +612,8 @@ export default {
612
612
  }
613
613
  },
614
614
  'model.f_payment' (val) {
615
- if (val == '免交') {
615
+ let _payment = this.$appdata.getSingleValue('需要输入业务单号的付款方式') || ''
616
+ if (val == '免交' || _payment.includes(val)) {
616
617
  this.mjshow = true
617
618
  } else if (val == '赠气' && (this.model.f_preamount || this.model.f_preamount != '')) {
618
619
  if (this.row.f_collection_type == '按气量') {
@@ -581,7 +581,8 @@
581
581
  this.getPrivilegeList()
582
582
  },
583
583
  'model.f_payment' (val) {
584
- if (val == '免交') {
584
+ let _payment = this.$appdata.getSingleValue('需要输入业务单号的付款方式') || ''
585
+ if (val == '免交' || _payment.includes(val)) {
585
586
  this.mjshow = true
586
587
  } else if (val == '赠气' && (this.model.f_preamount || this.model.f_preamount != '')) {
587
588
  if (this.row.f_collection_type == '按气量') {
@@ -581,7 +581,7 @@ export default {
581
581
  },
582
582
  methods: {
583
583
  downloadFiles () {
584
- let downurl = 'rs/downloadfile/file?filename=卡表批量抄表导入模板'
584
+ let downurl = 'rs/downloadfile/file?filename=闻喜卡表批量抄表导入模板'
585
585
  this.$downFile(downurl,'卡表批量抄表导入模板.xlsx')
586
586
  },
587
587
  hidden () {
package/src/main.js CHANGED
@@ -4,7 +4,7 @@ import App from './App'
4
4
  import system from 'system-clients/src/system'
5
5
  import sale from './sale'
6
6
  // import wenxi from './filiale/rizhao/sale'
7
- import FilialeSale from './filiale/yuansheng/sale'
7
+ import FilialeSale from './filiale/zhongsheng/sale'
8
8
  import address from 'address-client/src/address'
9
9
  import ldap from 'ldap-clients/src/ldap'
10
10
  import VueClipboard from 'vue-clipboard2'
Binary file
Binary file