sale-client 3.5.264 → 3.5.266

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sale-client",
3
- "version": "3.5.264",
3
+ "version": "3.5.266",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -0,0 +1,252 @@
1
+ <template>
2
+ <div class="auto">
3
+ <modal :show.sync="show_devices" width="80%" title="设备信息" v-ref:modal large backdrop="false">
4
+ <article slot="modal-body" class="modal-body" style="height: auto">
5
+ <div class="flex-row flex-deviceinfo">
6
+ <div class="flex-row flex-two-info panel panel-default" v-for="(index,row) in devicesinfonew">
7
+ <avatar-upload :img-src.sync="row.img.content" :filename.sync="row.img.filename"></avatar-upload>
8
+ <form class="form-horizontal select-overspread " style="flex: 1;">
9
+ <div class="row auto" style="margin-top: 10px;margin-left: 10px;">
10
+ <div class="col-sm-6 form-group" style="padding-right: 5px;">
11
+ <label class="font_normal_body">设备类型</label>
12
+ <v-select :value.sync="row.f_devices_type" v-model="row.f_devices_type"
13
+ :options='devicetypes' placeholder='设备类型' :value-single="true"
14
+ close-on-select @change="onChange"></v-select>
15
+ </div>
16
+ <div class="col-sm-6 form-group" style="padding-right: 5px;">
17
+ <label class=" font_normal_body">厂&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;家&nbsp;</label>
18
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_manufactor"
19
+ placeholder='厂家' v-next-el="{id: $index+'brand'}">
20
+ </div>
21
+ </div>
22
+ <div class="row auto" style="margin-left: 10px;">
23
+ <div class="col-sm-6 form-group" style="padding-right: 5px;">
24
+ <label class=" font_normal_body">设备编号</label>
25
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_devices_no" placeholder='设备编号' v-next-el="{id: $index+'brand'}">
26
+ </div>
27
+ <div class="col-sm-6 form-group" style="padding-right: 5px;">
28
+ <label class="font_normal_body">设备品牌</label>
29
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_brand" placeholder='设备品牌' v-next-el="{id: $index+'devicesmodel'}" :id="$index+'brand'">
30
+ </div>
31
+ </div>
32
+ <div class="row auto" style="margin-left: 10px;">
33
+ <div class="col-sm-6 form-group" style="padding-right: 5px;">
34
+ <label class="font_normal_body">设备型号</label>
35
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_devices_model"
36
+ placeholder='设备型号' :id="$index+'devicesmodel'">
37
+ </div>
38
+ <div class="col-sm-6 form-group" style="padding-right: 5px;">
39
+ <label class="font_normal_body">&nbsp;安&nbsp;装&nbsp;人&nbsp;</label>
40
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_instaler_person"
41
+ placeholder='安装人' v-next-el="{id: $index+'f_instaler_person'}" :id="$index+'brand'">
42
+ </div>
43
+ </div>
44
+ <div class="row auto" style="margin-left: 10px;">
45
+ <div class="col-sm-6 form-group" style="padding-right: 5px;">
46
+ <label class="font_normal_body">生产日期</label>
47
+ <datepicker placeholder="生产日期" style="width: 60%"
48
+ v-model="row.f_make_date"
49
+ :value.sync="row.f_make_date"
50
+ :format="'yyyy-MM-dd HH:mm:ss'">
51
+ </datepicker>
52
+ </div>
53
+ <div class="col-sm-6 form-group" style="padding-right: 5px;">
54
+ <label class="font_normal_body">安装日期</label>
55
+ <datepicker placeholder="安装日期" style="width: 60%"
56
+ v-model="row.f_input_date"
57
+ :value.sync="row.f_input_date"
58
+ :onchange="expireDate(index)"
59
+ :format="'yyyy-MM-dd HH:mm:ss'">
60
+ </datepicker>
61
+ </div>
62
+ </div>
63
+ <div class="row auto" style="margin-left: 10px;">
64
+ <div class="col-sm-6 form-group" style="padding-right: 5px;">
65
+ <label class="font_normal_body">设备数量</label>
66
+ <input type="number" class="input_search" style="width:60%" v-model="row.f_devices_num"
67
+ placeholder='设备数量' v-next-el="{id: $index+'devicesmodel'}" :id="$index+'brand'">
68
+ </div>
69
+ <div class="col-sm-6 form-group" style="padding-right: 5px;" v-show="row.f_devices_type == '报警器'">
70
+ <label class="font_normal_body">首校日期</label>
71
+ <datepicker placeholder="首校日期" style="width: 60%"
72
+ v-model="row.f_firstcheck_date"
73
+ :value.sync="row.f_firstcheck_date"
74
+ :onchange="alarmExpireDate(index)"
75
+ :format="'yyyy-MM-dd HH:mm:ss'">
76
+ </datepicker>
77
+ </div>
78
+ <div class="col-sm-6 form-group" style="padding-right: 5px;" v-show="row.f_devices_type == '调压器'">
79
+ <label class="font_normal_body">流&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;量&nbsp;</label>
80
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_rate_flow"
81
+ placeholder='流量' v-next-el="{id: $index+'devicesmodel'}" :id="$index+'brand'">
82
+ </div>
83
+ <div class="col-sm-6 form-group" style="padding-right: 5px;" v-if="row.f_devices_type == '切断阀' && devicesinfoShow">
84
+ <label class="font_normal_body">报废日期</label>
85
+ <datepicker placeholder="报废日期" style="width: 60%"
86
+ v-model="row.f_expire_date" disabled
87
+ :value.sync="row.f_expire_date"
88
+ :format="'yyyy-MM-dd HH:mm:ss'">
89
+ </datepicker>
90
+ </div>
91
+ </div>
92
+ <div class="row auto" style="margin-left: 10px;">
93
+ <div class="col-sm-6 form-group" style="padding-right: 5px;" v-if="row.f_devices_type == '报警器' && devicesinfoShow">
94
+ <label class="font_normal_body">报废日期</label>
95
+ <datepicker placeholder="报废日期" style="width: 60%"
96
+ v-model="row.f_expire_date" disabled
97
+ :value.sync="row.f_expire_date"
98
+ :format="'yyyy-MM-dd HH:mm:ss'">
99
+ </datepicker>
100
+ </div>
101
+ <div class="col-sm-6 form-group" style="padding-right: 5px;" v-if="row.f_devices_type == '报警器' && devicesinfoShow">
102
+ <label class="font_normal_body">下次校验</label>
103
+ <datepicker placeholder="下次校验日期" style="width: 60%"
104
+ v-model="row.f_nextcheck_date" disabled
105
+ :value.sync="row.f_nextcheck_date"
106
+ :format="'yyyy-MM-dd HH:mm:ss'">
107
+ </datepicker>
108
+ </div>
109
+ <div class="col-sm-6 form-group" style="padding-right: 5px;" v-show="row.f_devices_type == '调压器'">
110
+ <label class="font_normal_body">压力范围</label>
111
+ <input type="text" class="input_search" style="width:60%" v-model="row.f_pressure_range"
112
+ placeholder='压力范围' v-next-el="{id: $index+'devicesmodel'}" :id="$index+'brand'">
113
+ </div>
114
+ </div>
115
+ <div class="row auto" style="margin-left: 10px;">
116
+ <div style="" class="col-sm-8 form-group">
117
+ <label for="f_comments" class="font_normal_body ">&nbsp;&nbsp;&nbsp;备&nbsp;&nbsp;&nbsp;注</label>
118
+ <input class="input_search" style="width:80%" v-model="row.f_comments"/>
119
+ </div>
120
+ </div>
121
+ </form>
122
+ <img :src="imgdelete" alt="图片加载失败" class="img-rounded"
123
+ style="width: 60px;padding: 20px;margin-left: -15px;cursor: pointer;"
124
+ @click="deleteDevice($index, row)">
125
+ </div>
126
+ <div class="panel panel-default flex-two-info text-center" style="line-height: 164px;">
127
+ <img :src="imgadd" alt="图片加载失败1" class="img-rounded" style="width: 60px;padding: 10px;cursor: pointer;"
128
+ @click="addDevice()">
129
+ </div>
130
+ </div>
131
+ </article>
132
+ <footer slot="modal-footer" class="modal-footer">
133
+ </footer>
134
+ </modal>
135
+ </div>
136
+
137
+ </template>
138
+
139
+ <script>
140
+ export default {
141
+ title: '表具设备信息',
142
+ data () {
143
+ return {
144
+ imgdelete: '/images/mainicon/deletedevice.png',
145
+ imgadd: '/images/mainicon/adddevice.png',
146
+ devicetypes: [{label: '调压器', value: '调压器'}, {label: '报警器', value: '报警器'}, {label: '切断阀', value: '切断阀'}],
147
+ devicesinfoShow: false
148
+ }
149
+ },
150
+ props: {
151
+ devicesinfonew: {
152
+ type: Array,
153
+ default: []
154
+ },
155
+ show_devices: {
156
+ type: Boolean,
157
+ default: false
158
+ },
159
+ usertype: {
160
+ type: String
161
+ }
162
+ },
163
+ methods: {
164
+ onChange (val) {
165
+ console.log('。。。。。看看变化的值:' + val)
166
+ this.changeDate()
167
+ },
168
+ changeDate () {
169
+ for (let i = 0; i < this.devicesinfonew.length; i++) {
170
+ if (this.devicesinfonew[i].f_devices_type == '报警器') {
171
+ this.alarmExpireDate(i)
172
+ } else if (this.devicesinfonew[i].f_devices_type == '切断阀') {
173
+ this.expireDate(i)
174
+ }
175
+ }
176
+ },
177
+ expireDate (index) {
178
+ if (this.devicesinfonew[index].f_devices_type == '切断阀') {
179
+ if (this.devicesinfonew[index].f_input_date === '' || this.devicesinfonew[index].f_input_date === undefined) {
180
+ } else {
181
+ let b = new Date(this.devicesinfonew[index].f_input_date)
182
+ let year = (b.getFullYear() - 0) + 10
183
+ let month = (b.getMonth() - 0) + 1
184
+ var day = b.getDate()
185
+ this.devicesinfonew[index].f_expire_date = year + '-' + (month < 10 ? '0' + month : month) + '-' + (day < 10 ? '0' + day : day)
186
+ this.devicesinfoShow = false
187
+ this.$nextTick(() => {
188
+ this.devicesinfoShow = true
189
+ })
190
+ }
191
+ }
192
+ },
193
+ alarmExpireDate (index) {
194
+ if (this.devicesinfonew[index].f_firstcheck_date === '' || this.devicesinfonew[index].f_firstcheck_date === undefined) {
195
+ } else {
196
+ let b = new Date(this.devicesinfonew[index].f_firstcheck_date)
197
+ let year = (b.getFullYear() - 0) + 3
198
+ let year2 = (b.getFullYear() - 0) + 1
199
+ let month = (b.getMonth() - 0) + 1
200
+ var day = b.getDate()
201
+ this.devicesinfonew[index].f_expire_date = year + '-' + (month < 10 ? '0' + month : month) + '-' + (day < 10 ? '0' + day : day)
202
+ this.devicesinfonew[index].f_nextcheck_date = year2 + '-' + (month < 10 ? '0' + month : month) + '-' + (day < 10 ? '0' + day : day)
203
+ this.devicesinfoShow = false
204
+ this.$nextTick(() => {
205
+ this.devicesinfoShow = true
206
+ })
207
+ }
208
+ },
209
+ deleteDevice (index, row) {
210
+ console.log('删除的信息', row)
211
+ if (!this.$login.r.includes('删除表具设备信息')) {
212
+ return this.$showAlert('【删除表具设备信息】权限不足!!!', 'info', 1000)
213
+ }
214
+ if (row.id) {
215
+ this.$showMessage('此操作无法还原,是否确定要删除此设备?', ['confirm', 'cancel']).then((res) => {
216
+ if (res === 'confirm') {
217
+ this.$resetpost('rs/logic/deletedevices', {param: row}, {
218
+ resolveMsg: `成功删除此设备`,
219
+ rejectMsg: '删除设备失败'
220
+ }).then((res) => {
221
+ this.devicesinfonew.splice(index, 1)
222
+ })
223
+ }
224
+ })
225
+ } else {
226
+ this.devicesinfonew.splice(index, 1)
227
+ }
228
+ },
229
+ addDevice () {
230
+ console.log('设备信息', this.devicesinfonew)
231
+ this.devicesinfonew.push({
232
+ f_devices_type: '调压器',
233
+ f_input_date: this.$login.toStandardTimeString()
234
+ })
235
+ }
236
+ }
237
+ }
238
+ </script>
239
+ <style lang="less">
240
+ .flex-deviceinfo {
241
+ padding: 0px 20px;
242
+ justify-content: space-between;
243
+ height: auto;
244
+ flex-wrap: wrap;
245
+ }
246
+
247
+ .flex-two-info {
248
+ margin-bottom: 10px;
249
+ align-items: center;
250
+ width: 48%;
251
+ }
252
+ </style>
@@ -0,0 +1,179 @@
1
+ <template>
2
+ <div class="auto">
3
+ <div class="" v-for="row in meterinfo">
4
+ <div style="margin-bottom: 2%; margin-top: 2%">
5
+ <img style="margin-top: -5px" src="../../../static/images/lefticon/矩形1183.png">
6
+ <a style="font-size: 20px;font-weight: 500;">表具{{ $index + 1 }}信息</a>&nbsp;<a
7
+ style="color: #999999;text-decoration: none"></a>
8
+ <button class="button_search" style="width: max-content" @click="deleteMeter($index, row)"
9
+ v-if="!row.f_table_state ">删除表具
10
+ </button>
11
+ <button class="button_search" style="width: max-content" @click="showDevices($index, row)">用气设备信息</button>
12
+ <button class="button_search" style="width: max-content" @click="showDevicesNew($index, row)">设备信息</button>
13
+ </div>
14
+ <file-meter-info :curuser="curuser" :meter="row" :f_filialeid="f_filialeid" :usertype="usertype"
15
+ :gasproperties="gasproperties" :overdueset="overdueset" @self-valid='valida'
16
+ @delete-meter="deleteMeter($index)" :f_userinfo_id="f_userinfo_id"></file-meter-info>
17
+ <file-user-fire-info @clearfire="clearfire(row)" :addressinfo="addressinfo" :fireinfo.sync="fireinfo"
18
+ :show_fire.sync="show_fire" :meter.sync="row" :baseinfo.sync="baseinfo"
19
+ :userinfoid='data.baseinfo.base.f_userinfo_id'></file-user-fire-info>
20
+
21
+ </div>
22
+ <div class="panel panel-default auto text-center" @click="addMeter()" style="cursor: pointer;"
23
+ v-if="permission('建档一户多表')">
24
+ <span class="glyphicon glyphicon-plus"></span>
25
+ <!--<img :src="imgmeter" alt="图片加载失败" class="img-rounded" style="width: 50px;margin:10px;">-->
26
+ </div>
27
+ <file-user-device-info :devicesinfo.sync="devicesinfo" :show_devices.sync="show_devices"
28
+ :f_input_person="f_input_person"
29
+ :userinfoid='data.baseinfo.base.f_userinfo_id'></file-user-device-info>
30
+ <customer-device-info-test :devicesinfonew.sync="devicesinfonew" :show_devices.sync="show_devices_new"
31
+ :f_input_person="f_input_person" :usertype.sync="data.baseinfo.base.f_user_type"
32
+ :userinfoid='data.baseinfo.base.f_userinfo_id'></customer-device-info-test>
33
+ </div>
34
+ </template>
35
+
36
+ <script>
37
+ import UserDeviceInfoTest from './UserDeviceInfoTest'
38
+ import CustomerDeviceInfoTest from './CustomerDeviceInfoTest'
39
+
40
+ export default {
41
+ components: {CustomerDeviceInfoTest, UserDeviceInfoTest},
42
+ title: '表具信息',
43
+ data () {
44
+ return {
45
+ pricenames: [],
46
+ devicesinfo: [],
47
+ devicesinfonew: [],
48
+ show_devices: false,
49
+ show_devices_new: false,
50
+ fireinfo: {},
51
+ f_input_person: '',
52
+ show_fire: false,
53
+ imgdelete: '/images/mainicon/deletedevice.png',
54
+ imgsrc: '/images/mainicon/biaopan.png',
55
+ imgmeter: '/images/mainicon/addmeter.png'
56
+ }
57
+ },
58
+ // props: ['meterinfo', 'usertype', 'gasproperties', 'metervalid'],
59
+
60
+ props: {
61
+ meterinfo: [],
62
+ usertype: {},
63
+ gasproperties: {},
64
+ metervalid: {
65
+ twoWay: true
66
+ },
67
+ addressinfo: {},
68
+ baseinfo: {},
69
+ f_filialeid: {},
70
+ f_userinfo_id: {},
71
+ overdueset: {},
72
+ curuser: {}
73
+ },
74
+ ready () {
75
+ console.log('表具信息,,,,', this.meterinfo)
76
+ },
77
+ methods: {
78
+ permission (name) {
79
+ if (!this.$login.r.find(value => value == name)) {
80
+ return false
81
+ }
82
+ return true
83
+ },
84
+ isNull (value) {
85
+ return value && value.length > 0
86
+ },
87
+ addMeter () {
88
+ this.meterinfo.push({
89
+ // 表号
90
+ f_meternumber: '',
91
+ f_metertitles: '',
92
+ f_area_code: '',
93
+ // 气表品牌
94
+ gasbrand: '',
95
+ // 气表型号
96
+ gasmodel: '',
97
+ // 气表类型
98
+ gasmodeltype: '',
99
+ pricetype: '', // 气价类型
100
+ pricename: '', // 气价名称
101
+ f_user_type: '', // 用户类型
102
+ f_gasproperties: '', // 用气性质
103
+ f_inputtor: '',
104
+ // 安装位置
105
+ f_position: '',
106
+ f_subscribe_date: '',
107
+ // 左右表
108
+ f_aroundmeter: '',
109
+ f_garbage_fee: '',
110
+ f_meter_base: '',
111
+ // 安装人
112
+ f_instaler_person: '',
113
+ // 通气人
114
+ f_gas_person: '',
115
+ f_adjustable: '', // 调压箱
116
+ devicesinfo: [],
117
+ fireinfo: {}
118
+ })
119
+ },
120
+
121
+ showDevices (index, row) {
122
+ this.devicesinfo = []
123
+ this.show_devices = true
124
+ this.devicesinfo = row.devicesinfo
125
+ if (row.f_install_person[0]) {
126
+ this.f_input_person = row.f_install_person[0]
127
+ }
128
+ console.log('查看设备信息', this.devicesinfo)
129
+ console.log('查看设备信息', Object.prototype.toString.call(this.devicesinfo) === '[object Array]')
130
+ },
131
+ showDevicesNew (index, row) {
132
+ this.devicesinfonew = []
133
+ this.show_devices_new = true
134
+ this.devicesinfonew = row.devicesinfonew
135
+ if (row.f_install_person[0]) {
136
+ this.f_input_person = row.f_install_person[0]
137
+ }
138
+ console.log('查看设备信息2', this.devicesinfonew)
139
+ },
140
+ showFire (index, row) {
141
+ if (row.f_user_type.length == 0) {
142
+ this.$showAlert('请先确定客户类型', 'warning', 3000)
143
+ } else {
144
+ this.fireinfo = {}
145
+ this.show_fire = true
146
+ this.fireinfo = row.fireinfo ? row.fireinfo : {}
147
+ }
148
+ },
149
+ // 清楚表具信息
150
+
151
+ clearMeter () {
152
+ this.meterinfo = []
153
+ },
154
+ deleteMeter (index) {
155
+ this.meterinfo.splice(index, 1)
156
+ this.valida()
157
+ },
158
+ valida () {
159
+ for (var i = 0; i < this.meterinfo.length; i++) {
160
+ console.log('表具信息验证', this.meterinfo, this.meterinfo[i].valid)
161
+ if (!this.meterinfo[i].valid) {
162
+ this.metervalid = false
163
+ return
164
+ }
165
+ }
166
+ this.metervalid = true
167
+ }
168
+ }
169
+ }
170
+ </script>
171
+ <style lang="less">
172
+ .user-meter-padding {
173
+ .form-group {
174
+ > div {
175
+ padding-right: 5px;
176
+ }
177
+ }
178
+ }
179
+ </style>
@@ -101,4 +101,8 @@ export default function () {
101
101
  Vue.component('al-returns-money', (resolve) => { require(['./alReturnsMoney'], resolve) })
102
102
  // 收费
103
103
  Vue.component('charge-list', (resolve) => { require(['./ChargeList'], resolve) })
104
+ Vue.component('customer-device-info', (resolve) => { require(['./CustomerDeviceInfoTest'], resolve) })
105
+
106
+ // 用户表具信息test
107
+ Vue.component('file-user-meter-info', (resolve) => { require(['./UserMeterInfoTest'], resolve) })
104
108
  }
@@ -215,7 +215,7 @@ export default {
215
215
  }
216
216
  },
217
217
  async ready () {
218
- this.blodid = this.data.baseinfo.base.f_userinfo_id
218
+ this.blodid = '临时id' + Date.now()
219
219
  console.log('ready,,,', this.row)
220
220
  await this.getOvedueset()
221
221
  if (this.row) { // 修改用户
@@ -376,7 +376,7 @@ export default {
376
376
  return new Blob([bytesCode], {type: 'image/jpeg'})
377
377
  },
378
378
  newPhoto (Imgbase64) {
379
- console.log('imgbase----->',Imgbase64)
379
+ // console.log('imgbase----->',Imgbase64)
380
380
  let form = new FormData()
381
381
  let xhr = new XMLHttpRequest()
382
382
  let formDataBoundary = '----WebkitFormBoundary' + 'GaoPaiYi'
@@ -385,6 +385,7 @@ export default {
385
385
  xhr.open('POST', 'rs/file/uploadFile')
386
386
 
387
387
  if (this.headers) {
388
+ console.log('this.blodid----->',this.blodid)
388
389
  this.headers.blodid = this.blodid
389
390
  for (var header in this.headers) {
390
391
  xhr.setRequestHeader(header, encodeURIComponent(this.headers[header]))
@@ -0,0 +1,617 @@
1
+ <template>
2
+ <div>
3
+ <div style="overflow-y: scroll;height: 92%">
4
+ <div style="height: auto;width: 100%">
5
+ <div style="margin-bottom: 2%; margin-top: 2%">
6
+ <img style="margin-top: -5px" src="../../../../../static/images/lefticon/矩形1183.png">
7
+ <a style="font-size: 20px;font-weight: 500;">基本 信息</a>&nbsp;<a style="color: #999999;text-decoration: none"></a>
8
+ <button class="button_search" style="width: max-content" @click="uploadFiles()">上传附件</button>
9
+ <button class="button_search" style="width: max-content" @click="uploadPictures()">拍照</button>
10
+ </div>
11
+ <file-user-essential-info-new :baseinfo="data.baseinfo" :addressinfo="data.addressinfo" @valid="essentialInfo = true"
12
+ :f_filialeid="f_filialeid" @invalid="essentialInfo = false" v-ref:useressential :isedit="isedit"></file-user-essential-info-new>
13
+ </div>
14
+
15
+ <div style="height: auto;width: 100%">
16
+ <file-user-meter-info-new :meterinfo="data.meterinfo" :f_filialeid="f_filialeid" :metervalid.sync="meterInfo"
17
+ :f_userinfo_id="data.baseinfo.base.f_userinfo_id" v-ref:meter></file-user-meter-info-new>
18
+ </div>
19
+
20
+ <div style="height: auto;width: 100%">
21
+ <div style="margin-bottom: 2%; margin-top: 2%">
22
+ <img style="margin-top: -5px" src="../../../../../static/images/lefticon/矩形1183.png">
23
+ <a style="font-size: 20px;font-weight: 500;">发票信息</a>&nbsp;<a style="color: #999999"></a>
24
+ </div>
25
+ <user-paper-info-test :baseinfo="data.baseinfo"></user-paper-info-test>
26
+ </div>
27
+
28
+ <!--<div style="height: auto;width: 100%">-->
29
+ <!--<div style="margin-bottom: 2%; margin-top: 2%">-->
30
+ <!--<img style="margin-top: -5px" src="../../../static/images/lefticon/矩形1183.png">-->
31
+ <!--<a style="font-size: 20px;font-weight: 500;">附件信息</a>&nbsp;<a style="color: #999999"></a>-->
32
+ <!--</div>-->
33
+ <!--<upload :blodid="blodid" isremark="true" fusetype="档案"></upload>-->
34
+ <!--</div>-->
35
+ </div>
36
+
37
+ <div class="form-horizontal auto">
38
+ <div class="form-group">
39
+ <div style="text-align:right;">
40
+ <!-- <button class="button_search" v-show="row.f_print_state === null" @click="ignitionSheet()">生成点火单</button>-->
41
+ <!-- <button class="button_search" v-show="row.f_print_state === null" @click="schedule()">生成流程单</button>-->
42
+ <button v-if="config.meter_required" class="button_search" @click="confirm()" :disabled="!(essentialInfo && meterInfo )">确认
43
+ </button>
44
+ <button v-if="!config.meter_required" class="button_search" @click="confirm()" :disabled="!essentialInfo">确认
45
+ </button>
46
+ <button class="button_search" style="width: max-content" v-if="haslimit" @click="limitClick">限购配置</button>
47
+ <button class="button_clear" @click="cancel()">取消</button>
48
+ </div>
49
+ </div>
50
+ </div>
51
+ <limit-gas :show.sync="limitShow" :f_userinfo_id="data.baseinfo.base.f_userinfo_id"
52
+ @limit="getLimitGas"></limit-gas>
53
+ <modal :show.sync="showfiles" width="80%" style="width:auto;" v-ref:modal middle backdrop="false">
54
+ <article slot="modal-body">
55
+ <upload-idcard :blodid="blodid" isremark="true" @getidinfo="confirmIdCard" style="width:auto" fusetype="档案信息"></upload-idcard>
56
+ </article>
57
+ <footer slot="modal-footer" class="modal-footer">
58
+ </footer>
59
+ </modal>
60
+ <high-meter-idcard :show.sync="highmetershow" v-if="highmetershow" @photo-finish="newPhoto" v-on:confirminfo="confirmIdCard"></high-meter-idcard>
61
+ <user-flow-sheet :show="printflag" :bill-config='configs' :bill-data='billData' :data='newdata' v-on:toggle="close" @printok="printok" v-ref:printbill></user-flow-sheet>
62
+
63
+
64
+ </div>
65
+
66
+
67
+
68
+ </template>
69
+
70
+ <script>
71
+ import UserPaperInfoTest from './../../../../components/FilesManageNew/UserPaperInfoTest'
72
+ import {HttpResetClass} from 'vue-client'
73
+
74
+ let getFileGen = async function (self, data) {
75
+ let http = new HttpResetClass()
76
+ let result = await http.load('POST', 'rs/logic/filemanage_getFilesDetail', data, {
77
+ resolveMsg: null,
78
+ rejectMsg: '用户详细信息加载失败,请重新选择,如果多次失败,请检查系统是否正常!'
79
+ })
80
+ if (result.data.meterinfo.length === 0) {
81
+ // 预备户可以不填表具信息 所以修正时如果没有表具信息 则初始化一个
82
+ result.data.meterinfo.push({
83
+ f_meternumber: '', f_metertitles: '', f_area_code: '', gasbrand: '', gasmodel: '', gasmodeltype: '',
84
+ pricetype: '', pricename: '', f_user_type: '', f_gasproperties: '', f_inputtor: '', f_position: '',
85
+ f_userfiles_address: '', f_usetype: '', f_usestate: '', f_aroundmeter: '', f_garbage_fee: '否', f_meter_base: '',
86
+ f_initial_base: '', f_gas_person: '', f_adjustable: '', f_detailprice: '', devicesinfo: []
87
+ })
88
+ }
89
+
90
+ self.data = result.data
91
+ // 更新地址
92
+ // 修改附件临时id为表档案id
93
+ self.blodid = self.data.baseinfo.base.f_userinfo_id
94
+ console.log('获取档案信息', self.data)
95
+ self.checkout()
96
+ console.log('附件id', self.blodid)
97
+ }
98
+
99
+ export default {
100
+ title: '综合信息',
101
+ props: ['f_filialeid', 'row', 'areainfo', 'haslimit', 'isedit', 'configs'],
102
+ components: {UserPaperInfoTest},
103
+ data () {
104
+ return {
105
+ config: {
106
+ adddevices: false,
107
+ // 预备户表具信息是否必填
108
+ meter_required: true,
109
+ f_building_suffix: '栋',
110
+ f_unit_suffix: '单元',
111
+ f_floor_suffix: '层',
112
+ f_room_suffix: '室'
113
+ },
114
+ headers: {'username': this.$login.f.name, 'blodid': '', 'fremarks': '', 'defname': '', 'fusetype': '档案信息'},
115
+ data: {
116
+ baseinfo: {
117
+ base: {
118
+ f_user_state: '',
119
+ f_print_dh: '否',
120
+ f_print_lc: '点火单',
121
+ f_credentials: '',
122
+ f_cost_type: '',
123
+ f_paper_type: '',
124
+ f_idnumber: ''
125
+ },
126
+ bank: {
127
+ f_bank_name: ''
128
+ }
129
+ },
130
+ addressinfo: {
131
+ id: '',
132
+ f_address: '',
133
+ f_address_state: ''
134
+ },
135
+ meterinfo: [{
136
+ f_user_type: '',
137
+ f_gasproperties: '',
138
+ devicesinfo: []
139
+ }],
140
+ devicesinfo: [],
141
+ address: {
142
+ id: '',
143
+ f_address: ''
144
+ }
145
+ },
146
+ printSheet: {
147
+ f_state: '有效',
148
+ f_print_state: '未打印',
149
+ f_type: '点火单',
150
+ f_orgid: this.$login.f.orgid ? this.$login.f.orgid : '',
151
+ f_orgname: this.$login.f.orgs ? this.$login.f.orgs : '',
152
+ f_depid: this.$login.f.depids ? this.$login.f.depids : '',
153
+ f_depname: this.$login.f.deps ? this.$login.f.deps : '',
154
+ f_operator: this.$login.f.name,
155
+ f_operatorid: this.$login.f.id
156
+ }, // 插入打印的模型
157
+ billData: {
158
+ url: 'rs/report/userignition',
159
+ bill: ''
160
+ },
161
+ oldAddress: {},
162
+ newdata: {},
163
+ highmetershow: false, // 高拍仪组件控制
164
+ showfiles: false,
165
+ // 子组件验证
166
+ essentialInfo: false,
167
+ meterInfo: false,
168
+ printflag: false,
169
+ // 地址相关属性
170
+ params: {
171
+ areas: [],
172
+ f_street: [],
173
+ f_residential_area: []
174
+ },
175
+
176
+ // 限购相关属性
177
+ limitShow: false,
178
+ limit_gas: null,
179
+ peopleNum: this.$appdata.getSingleValue('默认人口'),
180
+ blodid: '', // 附件的临时id
181
+ defaultMeterInfo: '' // 默认的表具信息
182
+ }
183
+ },
184
+ async ready () {
185
+ this.blodid = '临时id' + Date.now()
186
+ console.log('ready,,,', this.row)
187
+ console.log('f_filialeid111,,,', this.f_filialeid)
188
+ try {
189
+ await this.$getConfig(this, 'FilesDetail')
190
+ } catch (error) {
191
+ console.log('捕获到异常', error)
192
+ }
193
+ console.log('FilesDetail的config:' + this.config)
194
+ if (this.row) { // 修改用户
195
+ await this.areaGen(this.row)
196
+ } else if (!this.row) { // 小区批量建档
197
+ // 将小区信息转化为综合信息的格式
198
+ await this.areainfoInUser(this.areainfo)
199
+ }
200
+ },
201
+ watch: {
202
+ async 'row' (val) {
203
+ console.log('观察row', val)
204
+ if (val) {
205
+ await this.areaGen(val)
206
+ } else {
207
+ await this.areainfoInUser(this.areainfo)
208
+ }
209
+ },
210
+ 'areainfo' (val) {
211
+ console.log('小区观察。。', val)
212
+ if (val) {
213
+ this.$refs.meter.clearMeter()
214
+ this.blodid = '临时id' + Date.now()
215
+ this.areainfoInUser(val)
216
+ }
217
+ },
218
+ 'essentialInfo' (val) {
219
+ console.log('观察到验证变化', val)
220
+ }
221
+ },
222
+ methods: {
223
+ close () {
224
+ this.printflag = false
225
+ },
226
+ printok () {
227
+ console.log('======================')
228
+ this.confirm()
229
+ },
230
+ downFiles (index) {
231
+ console.log('xxxxxxxxxxxxxxxxxxxxx')
232
+ // 下载不同文件
233
+ if (index == 0) {
234
+ let url = 'rs/report/userinstall'
235
+ this.billData.url = url
236
+ this.data.baseinfo.base.f_print_lc = '是'
237
+ } else {
238
+ let url = 'rs/report/userignition'
239
+ this.billData.url = url
240
+ this.data.baseinfo.base.f_print_dh = '是'
241
+ }
242
+ this.newdata = this.row
243
+ this.printflag = true
244
+ },
245
+ confirmIdCard (IdCardInfo) {
246
+ this.uploadPictures()
247
+ this.data.baseinfo.base.f_user_name = IdCardInfo.strName
248
+ this.data.baseinfo.base.f_idnumber = IdCardInfo.strID
249
+ },
250
+ uploadFiles () {
251
+ this.showfiles = !this.showfiles
252
+ },
253
+
254
+ uploadPictures () {
255
+ this.highmetershow = !this.highmetershow
256
+ },
257
+ savePrintSheet (res) {
258
+ console.log('保存单子:' + this.data.baseinfo.base.f_print_dh_stats)
259
+ if (!this.data.baseinfo.base.f_print_dh_stats) {
260
+ console.log('单子类型', this.data.baseinfo.base.f_print_dh)
261
+ this.printSheet.f_userinfo_id = res.f_userinfo_id
262
+ if (this.data.baseinfo.base.f_print_dh == '点火单') {
263
+ this.ignitionSheet()
264
+ }
265
+ if (this.data.baseinfo.base.f_print_dh == '流程单') {
266
+ this.schedule()
267
+ }
268
+ }
269
+ },
270
+ ignitionSheet () { // 点火单
271
+ this.printSheet.f_type = '点火单'
272
+ this.saveTablePrintSheet()
273
+ },
274
+ schedule () { // 流程单
275
+ this.printSheet.f_type = '流程单'
276
+ this.saveTablePrintSheet()
277
+ },
278
+ async saveTablePrintSheet () {
279
+ console.log(this.printSheet)
280
+ let check = await this.$resetpost('rs/logic/checkPrintUser', {data: {f_userinfo_id: this.printSheet.f_userinfo_id}}, {resolveMsg: '', rejectMsg: ''})
281
+ if (check.data.length === 0) {
282
+ await this.$resetpost('rs/logic/savePrintSheet', {data: {printData: this.printSheet}}, {resolveMsg: '', rejectMsg: ''})
283
+ }
284
+ // let check = await this.$resetpost('rs/logic/checkPrintUser', {data:{f_userinfo_id: this.printSheet.f_userinfo_id}}, {resolveMsg: '', rejectMsg: ''})
285
+ // if (check.data.length !== 0){
286
+ // if(check.data[0].num !== 0){
287
+ // // let msg = "您已生成了 \""+check.data[0].type+"\" ,请前往 [ 综合业务 ] --> [ 打印数据 ]页面查看";
288
+ // // this.$showMessage(msg);
289
+ // return ;
290
+ // }
291
+ // }
292
+ // let expiration = await this.$resetpost('rs/logic/savePrintSheet', {
293
+ // data:{printData:this.printSheet}
294
+ // }, {resolveMsg: '', rejectMsg: ''})
295
+ // console.log(expiration);
296
+ // if(expiration.data === 200){
297
+ // this.$showMessage("您已成功生成 \""+this.printSheet.f_type+"\" ,请前往 [ 综合业务 ] --> [ 打印数据 ]页面查看")
298
+ // }
299
+ },
300
+ confirm () {
301
+ this.data.addressinfo.f_address = this.$refs.useressential.addressinfo.f_address
302
+ this.data.addressinfo.id = this.$refs.useressential.addressinfo.id
303
+ this.data.oldaddressinfo = this.oldAddress
304
+ this.data.inputcode = this.$refs.useressential.inputcode ? this.$refs.useressential.inputcode : '否'
305
+ this.data.limit_gas = this.limit_gas
306
+ if (this.f_filialeid && this.f_filialeid != '') {
307
+ this.data.f_filialeid = this.f_filialeid
308
+ } else {
309
+ this.data.f_filialeid = this.$login.f.orgid
310
+ }
311
+ if (this.row) {
312
+ this.data.baseinfo.base.version = this.row.version
313
+ }
314
+ this.$FileManageService.fileSave(this.$FileManageService.fileSaveBefore(this.data)).then((res) => {
315
+ this.savePrintSheet(res.data.result[0])
316
+ this.$dispatch('success')
317
+ }).catch((error) => {
318
+ if (error.status === 603) {
319
+ this.$error('重复提交')
320
+ return
321
+ }
322
+ this.$dispatch('error', '档案保存', this.data, error)
323
+ })
324
+ },
325
+ convertBase64ToBlob (base64String) {
326
+ // 将base64解码
327
+ var bytes = atob(base64String)
328
+ // var bytes = base64;
329
+ var bytesCode = new ArrayBuffer(bytes.length)
330
+ // 转换为类型化数组
331
+ var byteArray = new Uint8Array(bytesCode)
332
+
333
+ // 将base64转换为ascii码
334
+ for (var i = 0; i < bytes.length; i++) {
335
+ byteArray[i] = bytes.charCodeAt(i)
336
+ }
337
+ // 生成Blob对象(文件对象)
338
+ return new Blob([bytesCode], {type: 'image/jpeg'})
339
+ },
340
+ newPhoto (Imgbase64) {
341
+ //console.log('imgbase----->',Imgbase64)
342
+ let form = new FormData()
343
+ let xhr = new XMLHttpRequest()
344
+ let formDataBoundary = '----WebkitFormBoundary' + 'GaoPaiYi'
345
+ form.append('Content-Type', 'multipart/form-data;boundary=' + formDataBoundary)
346
+ form.append('file', this.convertBase64ToBlob(Imgbase64), 'GaoPaiYi.jpg')
347
+ xhr.open('POST', 'rs/file/uploadFile')
348
+
349
+ if (this.headers) {
350
+ console.log('this.blodid----->',this.blodid)
351
+ this.headers.blodid = this.blodid
352
+ for (var header in this.headers) {
353
+ xhr.setRequestHeader(header, encodeURIComponent(this.headers[header]))
354
+ }
355
+ }
356
+ xhr.send(form)
357
+ setTimeout(() => {
358
+ this.load(this)
359
+ }, 5000)
360
+ },
361
+ async areaGen (data) {
362
+ data.f_user_id = data.f_user_id + ''
363
+ await getFileGen(this, data)
364
+ },
365
+ cancel () {
366
+ this.$dispatch('clean', '取消档案修正', 'user-general-info', this.row)
367
+ },
368
+ checkout (val) {
369
+ // 对收到的综合信息进行校验(主要目的是为了防止下拉框没有默认值)
370
+ // 对综合用户基本信息进行校验
371
+
372
+ // 将oldAddress 置为空,
373
+ this.oldAddress = {}
374
+ this.data.baseinfo.base.f_user_state = this.data.baseinfo.base.f_user_state ? [this.data.baseinfo.base.f_user_state] : '正常'
375
+ this.data.baseinfo.base.f_credentials = this.data.baseinfo.base.f_credentials ? [this.data.baseinfo.base.f_credentials] : '身份证'
376
+ this.data.baseinfo.base.f_cost_type = this.data.baseinfo.base.f_cost_type ? [this.data.baseinfo.base.f_cost_type] : '现金缴费'
377
+ this.data.baseinfo.base.f_paper_type = this.data.baseinfo.base.f_paper_type ? [this.data.baseinfo.base.f_paper_type] : '国税发票'
378
+ this.data.baseinfo.bank.f_bank_name = this.data.baseinfo.bank.f_bank_name ? [this.data.baseinfo.bank.f_bank_name] : '中国银行'
379
+ this.data.baseinfo.base.f_people_num = this.data.baseinfo.base.f_people_num ? this.data.baseinfo.base.f_people_num : (this.peopleNum ? this.peopleNum : 0)
380
+
381
+ if (this.data.baseinfo.base.f_slice_area) {
382
+ this.data.baseinfo.base.f_slice_area = [this.data.baseinfo.base.f_slice_area]
383
+ } else {
384
+ this.data.baseinfo.base.f_slice_area = ''
385
+ }
386
+ this.oldAddress.f_address = this.data.addressinfo.f_address
387
+ this.oldAddress.id = this.data.addressinfo.id
388
+
389
+ // 地址信息
390
+ // loadStreetAndResGen(this)
391
+
392
+ // 对表具信息进行校验
393
+ this.data.meterinfo.forEach((row) => {
394
+ if (row.gasbrand) {
395
+ this.meterbrands.forEach((item) => {
396
+ if (item.label === row.gasbrand) {
397
+ row.gasbrand = [item.value]
398
+ }
399
+ })
400
+ } else {
401
+ row.gasbrand = ''
402
+ }
403
+ if (row.gasmodel && (row.gasbrand instanceof Array)) {
404
+ row.gasbrand[0].gasmodel.forEach((item) => {
405
+ if (item.label === (val === 'area' ? row.gasmodel : row.gasmodel + row.gasmodeltype)) {
406
+ row.gasmodel = [item.value]
407
+ }
408
+ })
409
+ } else {
410
+ row.gasmodel = ''
411
+ }
412
+ if (row.f_fire_state === '1') {
413
+ row.f_fire_state1 = true
414
+ } else if (row.f_fire_state === '0') {
415
+ row.f_fire_state1 = false
416
+ }
417
+ row.f_install_date = row.f_install_date ? row.f_install_date : null
418
+ row.f_gas_date = row.f_gas_date ? row.f_gas_date : null
419
+ row.f_changetube_date = row.f_changetube_date ? row.f_changetube_date : null
420
+ row.f_aroundmeter = row.f_aroundmeter ? [row.f_aroundmeter] : ''
421
+ row.f_garbage_fee = row.f_garbage_fee ? [row.f_garbage_fee] : '否'
422
+ row.f_valve_state = row.f_valve_state ? [row.f_valve_state] : '开阀'
423
+ row.f_inputtor = row.f_inputtor ? [row.f_inputtor] : ''
424
+ row.f_position = row.f_position ? row.f_position : ''
425
+
426
+ row.f_user_type = row.f_user_type ? [row.f_user_type] : ''
427
+ row.f_gasproperties = row.f_gasproperties ? [row.f_gasproperties] : ''
428
+ row.pricetype = row.pricetype ? [row.pricetype] : ''
429
+
430
+ if (row.pricename) {
431
+ let names = this.getPricenames(row.f_user_type,
432
+ row.f_gasproperties,
433
+ row.pricetype)
434
+ if (names.length > 0) {
435
+ names.forEach((item) => {
436
+ if (item.label === row.pricename) {
437
+ row.pricename = [item.value]
438
+ row.f_detailprice = this.$CommonService.getShowPriceDetail(item.value.detailprice)
439
+ }
440
+ })
441
+ } else {
442
+ row.pricename = ''
443
+ }
444
+ } else {
445
+ row.pricename = ''
446
+ }
447
+
448
+ if (row.f_adjustable) {
449
+ this.adjustables.forEach((item) => {
450
+ if (item.label === row.f_adjustable) {
451
+ row.f_adjustable = [item.value]
452
+ }
453
+ })
454
+ } else {
455
+ row.f_adjustable = ''
456
+ }
457
+ })
458
+ // console.log('5555555555', this.data.meterinfo)
459
+ // 对设备进行校验
460
+ // this.data.devicesinfo.forEach((row) => {
461
+ // row.f_devices_type = row.f_devices_type ? [row.f_devices_type] : ''
462
+ // })
463
+ },
464
+ getPricenames (f_user_type, f_gasproperties, f_price_type) {
465
+ let rs = []
466
+ if (f_user_type.length === 1 && f_gasproperties.length === 1 && f_price_type.length === 1) {
467
+ rs = this.$GetSaleParam.getPrice({
468
+ f_user_type: f_user_type[0],
469
+ f_gasproperties: f_gasproperties[0],
470
+ f_price_type: f_price_type[0],
471
+ filter: this.f_filialeid
472
+ })
473
+ }
474
+ return rs
475
+ },
476
+ // 将小区信息转化为综合信息的格式
477
+ async areainfoInUser (areainfo) {
478
+ // this.nextTick(() => {
479
+ //
480
+ // })
481
+ // await this.$getConfig(this, 'UserAddress')
482
+ this.data = {
483
+ baseinfo: {
484
+ base: {
485
+ f_user_state: '预备',
486
+ f_print_dh: '',
487
+ f_print_lc: '否',
488
+ f_is_mgq: '',
489
+ f_slice_area: '', // 片区
490
+ // 附件表临时id
491
+ blodid: this.blodid,
492
+ // 用户姓名
493
+ f_user_name: '',
494
+ // 用户电话
495
+ f_user_phone: '',
496
+ f_people_num: 0,
497
+ // 备用电话
498
+ f_rent_phone: '',
499
+ f_credentials: '身份证',
500
+ f_cost_type: '',
501
+ f_address: '',
502
+ addressid: '',
503
+ f_idnumber: ''
504
+ },
505
+ bank: {}
506
+ },
507
+ addressinfo: {
508
+ // 详细地址
509
+ f_address: '',
510
+ id: ''
511
+ },
512
+ meterinfo: [{
513
+ // 表号
514
+ f_meternumber: '',
515
+ f_metertitles: '',
516
+ f_area_code: '',
517
+ // 气表品牌
518
+ gasbrand: '',
519
+ // 气表型号
520
+ gasmodel: '',
521
+ // 气表类型
522
+ gasmodeltype: '',
523
+ pricetype: '', // 气价类型
524
+ pricename: '', // 气价名称
525
+ f_user_type: '', // 用户类型
526
+ f_gasproperties: '', // 用气性质
527
+ f_inputtor: '',
528
+ // 安装位置
529
+ f_position: '',
530
+ // 安装地址
531
+ f_userfiles_address: '',
532
+ // 使用类型
533
+ f_usetype: '',
534
+ // 使用状态
535
+ f_usestate: '',
536
+ // 左右表
537
+ f_aroundmeter: '',
538
+ f_garbage_fee: '否',
539
+ f_meter_base: '',
540
+ f_initial_base: '',
541
+ // 通气人
542
+ f_gas_person: '',
543
+ f_adjustable: '', // 调压箱
544
+ f_detailprice: '', // 价格详情显示
545
+ devicesinfo: [] // 设备信息
546
+ }],
547
+ devicesinfo: []
548
+ }
549
+ // 若有id,则表示该地址是更新操作
550
+ /* if (areainfo.id) {
551
+ this.data.addressinfo.id = areainfo.id
552
+ }
553
+ // 改地址是 只有表没有户信息
554
+ if (areainfo.meter) {
555
+ Object.assign(this.data.meterinfo[0], this.data.meterinfo[0], areainfo.meter)
556
+ }
557
+ if (areainfo.user) {
558
+ Object.assign(this.data.baseinfo.base, this.data.baseinfo.base, areainfo.user)
559
+ } */
560
+
561
+ this.checkout('area')
562
+ },
563
+ limitClick () {
564
+ this.limitShow = true
565
+ },
566
+ getLimitGas (val) {
567
+ this.limit_gas = val
568
+ },
569
+ clearinfo () {
570
+ this.blodid = '临时id' + Date.now()
571
+ this.areainfoInUser(this.areainfo)
572
+ }
573
+ },
574
+ computed: {
575
+ meterbrands () {
576
+ return this.$GetSaleParam.getGasbrand()
577
+ },
578
+ adjustables () {
579
+ return this.$GetSaleParam.getAdjustable()
580
+ },
581
+ getMeterBooks () {
582
+ return this.$GetSaleParam.getMeterBooks()
583
+ }
584
+ },
585
+ events: {
586
+ // 设置表具气价等默认值
587
+ defaultOtheret (row) {
588
+ if (!this.isedit) {
589
+ let temp = {
590
+ gasmodel: row.f_meter_style,
591
+ gasbrand: row.f_meter_brand,
592
+ gasmodeltype: row.f_meter_style,
593
+ pricetype: row.f_price_type,
594
+ pricename: row.f_price_name,
595
+ f_user_type: row.f_user_type,
596
+ f_gasproperties: row.f_gasproperties,
597
+ f_position: row.f_position,
598
+ f_inputtor: row.f_inputtor,
599
+ f_meter_book_num: row.f_meter_book,
600
+ f_adjustable: row.f_adjustable_id,
601
+ f_hand_month: [row.f_hand_month]
602
+ }
603
+ if (!(temp.f_position instanceof Array)) {
604
+ temp.f_position = [temp.f_position]
605
+ }
606
+ Object.assign(this.data.meterinfo[0], this.data.meterinfo[0], temp)
607
+
608
+ this.checkout('area')
609
+ }
610
+ }
611
+ }
612
+ }
613
+ </script>
614
+ <style scoped>
615
+
616
+
617
+ </style>
@@ -22,7 +22,8 @@ export default function () {
22
22
  Vue.component('file-meter-info', (resolve) => { require(['./components/FilesManage/MeterinfoTest'], resolve) })
23
23
  // 用户综合信息(有单户建档确认的页面)
24
24
  Vue.component('file-user-general-info', (resolve) => { require(['./components/FilesManage/UserGeneralInfoTest'], resolve) })
25
-
25
+ // 用户综合信息
26
+ Vue.component('file-user-general-info-new', (resolve) => { require(['./components/FilesManageNew/UserGeneralInfoTest'], resolve) })
26
27
  Vue.component('insurance-manage', (resolve) => { require(['./components/revenue/InsuranceManage'], resolve) })
27
28
  Vue.component('insurance-lists', (resolve) => { require(['./components/revenue/InsuranceList'], resolve) })
28
29
  Vue.component('insurance-add', (resolve) => { require(['./components/revenue/InsuranceAdd'], resolve) })
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="auto" id="meterInfoTest">
3
- <validator name='m' @valid="mValid(true)" @invalid="mValid(true)">
3
+ <validator name='m' @valid="mValid(true)" @invalid="mValid(false)">
4
4
  <form class="form-horizontal select-overspread ">
5
5
  <div style="margin-top: 2%;">
6
6
  <a style="font-size: 16px;font-weight: 500;">表具信息</a>&nbsp;<a style="color: #999999;text-decoration: none"></a>
@@ -350,9 +350,9 @@
350
350
  v-ref:aroundmeter
351
351
  ></v-select>
352
352
  </div>
353
- <div class="col-sm-4 form-group" v-if="this.flag===1" >
353
+ <div class="col-sm-4 form-group" v-if="this.flag===1" :class="[$m.aroundmeter.required ? 'has-error' : '']" >
354
354
  <label for="f_aroundmeter" class="font_normal_body">&ensp;左&ensp;右&ensp;表</label>
355
- <input type="text" v-model="row.f_aroundmeter" v-show="false">
355
+ <input type="text" v-model="row.f_aroundmeter" v-show="false" v-validate:aroundmeter='{required: true }'>
356
356
  <v-select :value.sync="row.f_aroundmeter" v-model="row.f_aroundmeter"
357
357
  :options='aroundmeters' placeholder='请选择'
358
358
  close-on-select
@@ -42,7 +42,7 @@
42
42
  <div class="form-group">
43
43
  <div style="text-align:right;">
44
44
 
45
- <button class="button_search" @click="confirm()" :disabled="flag===2?!(essentialInfo && meterInfo ):false">确认
45
+ <button class="button_search" @click="confirm()" :disabled="!(essentialInfo && meterInfo )">确认
46
46
  </button>
47
47
  <button class="button_search" style="width: max-content" v-if="haslimit" @click="limitClick">限购配置</button>
48
48
  <button class="button_clear" @click="cancel()">取消</button>
@@ -325,6 +325,7 @@ export default {
325
325
  // 如果是修改, 则展示修改的明细给用户
326
326
  if (this.fileSaveData.userinfo.f_userinfo_id) {
327
327
  if (this.row.f_user_state === '预备' && this.fileSaveData.userinfo.f_user_state === '正常') {
328
+ this.fileSaveData.userinfo.f_createfile_person = this.$login.f.name
328
329
  this.fileSaveData.modifyReason = this.reason = '建档(档案信息完善)'
329
330
  } else {
330
331
  this.reason = '其他'
@@ -362,9 +363,9 @@ export default {
362
363
  console.log('打印保存数据', this.fileSaveData)
363
364
  console.log('打印id', this.fileSaveData.userinfo.f_userinfo_id)
364
365
  // 如果是修改操作则修改建党人
365
- if (this.fileSaveData.userinfo.f_userinfo_id) {
366
- this.fileSaveData.userinfo.f_createfile_person = this.$login.f.name
367
- }
366
+ // if (this.fileSaveData.userinfo.f_userinfo_id) {
367
+ // this.fileSaveData.userinfo.f_createfile_person = this.$login.f.name
368
+ // }
368
369
  console.log('二次打印打印保存数据', this.fileSaveData)
369
370
  FileManageService.fileSave(this.fileSaveData).then((res) => {
370
371
  this.$parent.resdata = res.data.result[0].f_userinfo_code
@@ -271,6 +271,47 @@ let FileManageService = {
271
271
  // }
272
272
  userfilesdevices.push(userfilesdevice)
273
273
  })
274
+ // 这里是给荣成新增的一个模块
275
+ if (meter.devicesinfonew != undefined && Object.prototype.toString.call(meter.devicesinfonew) === '[object Array]') {
276
+ meter.devicesinfonew.forEach((devitem) => {
277
+ let userfilesdevice = Object.assign({}, userfilesdevice, devitem)
278
+ userfilesdevice.f_user_id = data.meterinfo[0].f_user_id ? data.meterinfo[0].f_user_id : null
279
+ userfilesdevice.f_devices_type = userfilesdevice.f_devices_type
280
+ userfilesdevice.WatchPurchase = userfilesdevice.WatchPurchase
281
+ userfilesdevice.f_state = userfilesdevice.f_state ? userfilesdevice.f_state : '有效'
282
+ userfilesdevice.f_devices_no = userfilesdevice.f_devices_no ? userfilesdevice.f_devices_no : null
283
+ userfilesdevice.f_brand = userfilesdevice.f_brand ? userfilesdevice.f_brand : null
284
+ userfilesdevice.f_builderunit = userfilesdevice.f_builderunit ? userfilesdevice.f_builderunit : null
285
+ userfilesdevice.f_builder_phone = userfilesdevice.f_builder_phone ? userfilesdevice.f_builder_phone : null
286
+ userfilesdevice.f_devices_model = userfilesdevice.f_devices_model ? userfilesdevice.f_devices_model : null
287
+ userfilesdevice.f_devices_num = userfilesdevice.f_devices_num ? userfilesdevice.f_devices_num : null
288
+ userfilesdevice.f_input_person = userfilesdevice.f_input_person ? userfilesdevice.f_input_person : null
289
+ userfilesdevice.f_input_date = userfilesdevice.f_input_date ? userfilesdevice.f_input_date : null
290
+ userfilesdevice.f_make_date = userfilesdevice.f_make_date ? userfilesdevice.f_make_date : null
291
+ userfilesdevice.f_service_life = userfilesdevice.f_service_life ? userfilesdevice.f_service_life : null
292
+ userfilesdevice.f_expire_date = userfilesdevice.f_expire_date ? userfilesdevice.f_expire_date : null
293
+ userfilesdevice.f_pipeinstall_date = userfilesdevice.f_pipeinstall_date ? userfilesdevice.f_pipeinstall_date : null
294
+ userfilesdevice.f_pipe_type = userfilesdevice.f_pipe_type ? userfilesdevice.f_pipe_type : null
295
+ userfilesdevice.f_pipeexpire_date = userfilesdevice.f_pipeexpire_date ? userfilesdevice.f_pipeexpire_date : null
296
+ userfilesdevice.f_userinfodevices_state = userfilesdevice.f_userinfodevices_state ? userfilesdevice.f_userinfodevices_state : null
297
+ userfilesdevice.f_manufactor = userfilesdevice.f_manufactor ? userfilesdevice.f_manufactor : null
298
+ userfilesdevice.f_rate_flow = userfilesdevice.f_rate_flow ? userfilesdevice.f_rate_flow : null
299
+ userfilesdevice.f_pressure_range = userfilesdevice.f_pressure_range ? userfilesdevice.f_pressure_range : null
300
+ userfilesdevice.f_firstcheck_date = userfilesdevice.f_firstcheck_date ? userfilesdevice.f_firstcheck_date : null
301
+ userfilesdevice.f_nextcheck_date = userfilesdevice.f_nextcheck_date ? userfilesdevice.f_nextcheck_date : null
302
+ userfilesdevice.f_comments = userfilesdevice.f_comments ? userfilesdevice.f_comments : null
303
+ userfilesdevice.img = userfilesdevice.img ? userfilesdevice.img : {content: null, filename: null}
304
+ userfilesdevice.img.content = userfilesdevice.img.content ? userfilesdevice.img.content : null
305
+ userfilesdevice.img.filename = userfilesdevice.img.filename ? userfilesdevice.img.filename : null
306
+ userfilesdevice.f_operator = Vue.$login.f.name
307
+ userfilesdevice.f_operatorid = Vue.$login.f.id
308
+ // if (!userfilesdevice.id) {
309
+ // userfilesdevice.f_input_person = Vue.$login.f.name
310
+ // userfilesdevice.f_input_date = Vue.$login.toStandardTimeString ()
311
+ // }
312
+ userfilesdevices.push(userfilesdevice)
313
+ })
314
+ }
274
315
  meter.devicesinfo = userfilesdevices
275
316
  result.userfiles.push(meter)
276
317
  })