sale-client 3.6.282 → 3.6.283

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.6.282",
3
+ "version": "3.6.283",
4
4
  "description": "收费模块前台组件",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
@@ -0,0 +1,109 @@
1
+ <template>
2
+ <div id='contractSigning'>
3
+ <modal :show.sync="show" backdrop="false">
4
+ <header slot="modal-header" class="modal-header">
5
+ <h3 style="color:black" class="modal-title">合同</h3>
6
+ </header>
7
+ <article slot="modal-body" class="modal-body">
8
+ <iframe :src="url" v-if="url" width="100%" height="500px">
9
+ </iframe>
10
+ </article>
11
+ <footer slot="modal-footer" class="modal-footer">
12
+ <button type="button" class="btn btn-default" @click="handleReset">签名</button>
13
+ <button type="button" class="btn btn-default" @click="handleGenerate">保存</button>
14
+ <button type="button" class="btn btn-default" @click="clasehand">关闭</button>
15
+ </footer>
16
+ </modal>
17
+ <work-busy :is-busy="showbuy"></work-busy>
18
+ </div>
19
+ </template>
20
+ <script>
21
+ import * as jsign from '../../../plugins/jsign'
22
+ export default {
23
+ title: '合同签名页面',
24
+ data () {
25
+ return {
26
+ url: '',
27
+ imgstr: '',
28
+ scheduleData: '',
29
+ showclase: false,
30
+ showbuy: false
31
+ }
32
+ },
33
+ props: ['show'],
34
+ ready () {
35
+ },
36
+ compiled () {
37
+ },
38
+ methods: {
39
+ clasehand () {
40
+ this.url = ''
41
+ this.imgstr = ''
42
+ this.scheduleData = ''
43
+ this.show = false
44
+ },
45
+ getUserInfo () {
46
+ jsign.jsign_set_string('singurl', encodeURI(this.url))
47
+ },
48
+ getContractData (userinfoid) {
49
+ console.log(userinfoid)
50
+ this.showbuy = true
51
+ this.f_userinfo_id = userinfoid
52
+ this.$resetpost('wx/rs/logic/wordToosRept', {f_userinfo_id: this.f_userinfo_id}, {resolveMsg: null, rejectMsg: '获取合同失败!!'}).then(item => {
53
+ this.showbuy = false
54
+ if (item.data.length > 0) {
55
+ this.scheduleData = item.data[0]
56
+ this.url = item.data[0].f_visitpc_url
57
+ }
58
+ }).catch(err => {
59
+ console.log(err)
60
+ this.showbuy = false
61
+ })
62
+ },
63
+ handleReset () {
64
+ console.log('进入sign()')
65
+ console.log('jsign.dictGetArray', jsign.dictGetArray)
66
+ jsign.jsign_open(this)
67
+ setTimeout(() => {
68
+ jsign.jsign_get_device_status()
69
+ }, 1500)
70
+ setTimeout(() => {
71
+ if (jsign.dictGetArray['devicestatus'] === 'fail') {
72
+ console.log('没签字屏')
73
+ this.$showAlert('没有可用签字屏', 'danger', 0)
74
+ this.busy = 1
75
+ return
76
+ }
77
+ // jsign.jsign_set_string('name', 'jsigner')
78
+ // jsign.jsign_set_string('businessname', 'payment')
79
+ this.getUserInfo()
80
+ jsign.jsign_set_string('picture', '')
81
+
82
+ jsign.jsign_run_sign(jsign.htmlPath + `sign.html`)
83
+ }, 3000)
84
+ },
85
+ handleGenerate () {
86
+ // this.$dispatch('toggle')
87
+ if (this.imgstr === '') {
88
+ this.$showAlert('请先签字!', 'danger', 2000)
89
+ return
90
+ }
91
+ var data = {
92
+ content: this.imgstr,
93
+ f_userinfo_id: this.scheduleData.f_userinfo_id,
94
+ f_contract_signature_id: this.scheduleData.f_contract_signature_id
95
+ }
96
+ this.$resetpost('wx/rs/logic/pdfToosSignature', data).then((res) => {
97
+ if (res.data) {
98
+ this.showclase = true
99
+ this.url = res.data.f_visitpc_url
100
+ } else {
101
+ this.$vux.alert.show({title: '操作提示', content: '提交失败请稍后重试!'})
102
+ }
103
+ })
104
+ }
105
+ },
106
+ computed: {
107
+ }
108
+ }
109
+ </script>
@@ -93,10 +93,8 @@
93
93
  }
94
94
  await self.$resetpost('invoice/rs/logic/getInvoice', {data: params}, {resolveMsg: null, rejectMsg: '发票冲红失败!!!'})
95
95
  }
96
- if (name === 'otherFeeRollback') {
97
- console.log('准备刷新了!。。', res, self.model)
98
- self.$dispatch('cancel-success')
99
- }
96
+ console.log('准备刷新了!。。', res, self.model)
97
+ self.$dispatch('cancel-success')
100
98
 
101
99
  // 判断需不需要冲正电子票
102
100
  // if (self.isNeedEticket(getRecord.data, self.data.type)) {
@@ -0,0 +1,316 @@
1
+ <template>
2
+ <div id="unit" class="flex-row three" v-show="listpage">
3
+ <div class="binary-left" style="overflow: scroll;width:15%" >
4
+ <mulitinfo :warninginfo="warningInfo" style="height:auto" @deal-msg="dealMsg" :data="row" :card-data="cardInfo" v-ref:info></mulitinfo>
5
+ </div>
6
+ <div class="binary-right" style="width:68%;overflow-y: scroll" >
7
+ <div :style="{height:(row?'auto':'100%')}">
8
+ <!--<div class="auto" v-if="sustainMoney != null">-->
9
+ <!--<h2 style="margin-top: 10px">当前连续收款金额: {{sustainMoney}}</h2>-->
10
+ <!--</div>-->
11
+ <div>
12
+ <charge-list :row="row" @select-oper="showWork" @dblclick="toBusiness" @deal-msg="dealMsg"
13
+ v-ref:list></charge-list>
14
+
15
+ <div class="auto" style="margin-top: 1%;" v-if="row">
16
+ <charge-oper :data.sync="row" :card-info="cardInfo" v-ref:oper></charge-oper>
17
+ </div>
18
+ </div>
19
+ </div>
20
+ </div>
21
+ <div class="binary-right" style="width:22%" >
22
+ <ul class="nav nav-pills span" style="height:auto;margin:8px 0px;padding:4px 0;border-bottom: 1px solid #e7e7e7;" class="nav nav-tabs" >
23
+ <li ><a :style="selectFiled == '其他信息'?'color:#333333!important;':'color:#666666!important;'" :class="{'tel_voiceActive':selectFiled == '其他信息','tel_f_size':selectFiled != '其他信息'}" href="#" @click="setField('其他信息')">其他信息</a></li>
24
+ <li ><a :style="selectFiled == '历史操作'?'color:#333333!important;':'color:#666666!important;'" :class="{'tel_voiceActive':selectFiled == '历史操作','tel_f_size':selectFiled != '历史操作'}" href="#" @click="setField('历史操作')">历史操作</a></li>
25
+ <li v-if="row ?row.f_meter_type=='机表' : false"><a :style="selectFiled == '历史抄表'?'color:#333333!important;':'color:#666666!important;'" :class="{'tel_voiceActive':selectFiled == '历史抄表','tel_f_size':selectFiled != '历史抄表'}" href="#" @click="setField('历史抄表')">历史抄表</a></li>
26
+ </ul>
27
+ <div class="tab-content span" style="overflow-y: auto">
28
+ <otherinfo v-show="worktype === '其他信息'" style="height:auto" @deal-msg="dealMsg" :data="row" :card-data="cardInfo" v-ref:info></otherinfo>
29
+ <card-list v-show="worktype === '历史操作'" :btns="operatebtn" :f_orgid="f_orgid" :userinfoid="row ? row.f_userinfo_code : ''" @list-select-oper="recordCancel"
30
+ v-ref:card></card-list>
31
+ <hand-list v-if="worktype === '历史抄表'" :f_userfiles_id="row ? row.f_userfiles_id : ''" v-ref:hand></hand-list>
32
+ </div>
33
+
34
+ </div>
35
+
36
+ </div>
37
+ <div v-if="!listpage">
38
+ <user-info-detail-manage-new parentname="charge-manage" :f_userfiles_id="rowData.f_userfiles_id" @cancel-main="cancel" @cancel-re="cancelAndRefresh"></user-info-detail-manage-new>
39
+ </div>
40
+ <div v-if="showModal">
41
+ <charge-modal :warninginfo="warningInfo" :row="modalrow" :modal-show.sync="showModal" @close="close" @modalsuccess="modalsuccess"></charge-modal>
42
+ </div>
43
+ </template>
44
+ <script>
45
+ import ChargeOper from './ChargeOper'
46
+ import {HttpResetClass} from "vue-client";
47
+
48
+ export default {
49
+ title: '收费(综合)',
50
+ components: { ChargeOper },
51
+ data () {
52
+ return {
53
+ sustainMoney: null,
54
+ // 页面开关
55
+ listpage: true,
56
+ f_orgid: '',
57
+ row: null,
58
+ cardInfo: null,
59
+ warningInfo: null,
60
+ modalrow: null,
61
+ showModal: false,
62
+ rowData: {},
63
+ dibao_remind: this.$appdata.getSingleValue('低保快到期提醒') ? this.$appdata.getSingleValue('低保快到期提醒') : 0,
64
+ reSearchShowMsy: !!this.$appdata.getSingleValue('收费后验证'),
65
+ show: [true],
66
+ selectFiled: '其他信息',
67
+ worktype: '其他信息',
68
+ searchTime: 1000,
69
+ interval: null
70
+ }
71
+ },
72
+ destroyed () {
73
+ if(this.$appdata.getSingleValue('磁条卡读卡间隔')) {
74
+ clearInterval(this.interval)
75
+ }
76
+ },
77
+ ready () {
78
+ if(this.$appdata.getSingleValue('磁条卡读卡间隔')){
79
+ this.searchTime = this.$appdata.getSingleValue('磁条卡读卡间隔')
80
+ this.readCiTiaoCard()
81
+ }
82
+ this.setsustainMoney()
83
+ },
84
+ methods: {
85
+ async readCiTiaoCard () {
86
+ console.log('读磁条卡,开始,不停的循环')
87
+ let data = {}
88
+ let getUser = {data: []}
89
+ let forgid = this.$login.convertToIn([this.$login.f.orgid])
90
+ try {
91
+ this.interval = setInterval(() => {
92
+ // 1秒一轮回
93
+ let http = new HttpResetClass()
94
+ http.load('POST', 'http://127.0.0.1:8003/ReadCard_HEC', data, {
95
+ resolveMsg: null,
96
+ rejectMsg: null
97
+ }).then(async res => {
98
+ if (res.data.CardID !== '') {
99
+ if (res.data.Err === null && res.data.Exception) {
100
+ this.$showAlert(res.data.Exception, 'danger', 2000)
101
+ // clearInterval(interval)
102
+ } else {
103
+ if (res.data.Factory === 'CiTiao') {
104
+ // 获取用户信息
105
+ getUser = await this.$resetpost('rs/sql/sale_getUser', {
106
+ data: {
107
+ condition: `u.f_filialeid in ${forgid} and gb.f_meter_type in ('机表','物联网表') and i.f_userinfo_code='${res.data.CardID}'`,
108
+ orderitem: `f_userinfo_id`
109
+ }
110
+ }, {resolveMsg: null, rejectMsg: '读卡失败'})
111
+ this.$refs.list.model.rows = getUser.data
112
+ if (!this.row || (this.row && this.row.f_userinfo_code != getUser.data[0].f_userinfo_code)) {
113
+ await this.toBusiness(getUser.data[0])
114
+ }
115
+ }
116
+ }
117
+ }
118
+ })
119
+ }, this.searchTime * 1000)
120
+ } catch (error) {
121
+ console.log('捕获到异常', error)
122
+ }
123
+ },
124
+ setsustainMoney () {
125
+ this.sustainMoney = window.localStorage.getItem('sustainMoney')
126
+ },
127
+ setField (type) {
128
+ this.selectFiled = type
129
+ this.worktype = type
130
+ },
131
+ async toBusiness (obj) {
132
+ console.log('双击列表的时候传进来的数据:', obj)
133
+ if (!(obj instanceof Event)) {
134
+ // 对此数据进行验证
135
+ if (await this.validateRow(obj)) {
136
+ // 获取未写卡或者写卡失败记录
137
+ let getUnWriteSell = await this.$SqlService.singleTable('t_sellinggas', `f_state = '有效' and (f_write_card = '未写卡' or (f_write_card = '写卡失败' and f_operate_date >= DATEADD(HOUR, -3, GETDATE()))) and f_userfiles_id = '${obj.f_userfiles_id}'`)
138
+ console.log('获取未写卡记录', getUnWriteSell)
139
+ if (getUnWriteSell.data.length > 1) {
140
+ this.$showAlert('此卡已缴费多次未写卡。请核实后处理!!', 'warning', 5000)
141
+ } else {
142
+ this.row = obj
143
+ this.row.unWriteSell = getUnWriteSell.data
144
+ this.cardInfo = this.$refs.list.cardInfo
145
+ this.$refs.list.criteriaShow = false
146
+ // 将列表只显示该条数据
147
+ this.$refs.list.refreshRow(obj)
148
+ }
149
+ }
150
+ }
151
+ },
152
+ close () {
153
+ this.showModal = false
154
+ this.warningInfo = null
155
+ this.clean()
156
+ this.$refs.list.search()
157
+ // this.$refs.card.search()
158
+ },
159
+ async validateRow (obj) {
160
+ console.log('查看传进来的参数:', obj)
161
+ this.warningInfo = await this.$resetpost('rs/logic/getWarningMsg',
162
+ {data: {
163
+ f_userfiles_id: obj.f_userfiles_id,
164
+ f_userinfo_code: obj.f_userinfo_code,
165
+ f_userinfo_id: obj.f_userinfo_id
166
+ }
167
+ }
168
+ , {resolveMsg: '', rejectMsg: '获取提示失败'})
169
+ if (this.warningInfo.data.warningNum > 0 && obj.f_user_state !== '预备') {
170
+ this.modalrow = obj
171
+ this.showModal = true
172
+ return false
173
+ } else {
174
+ return true
175
+ }
176
+ },
177
+ clean () {
178
+ this.row = null
179
+ this.cardInfo = null
180
+ },
181
+ clearCondition () {
182
+ Object.keys(this.$refs.list.$refs.paged.$refs.cri.model).forEach((key) => {
183
+ console.log('key', key)
184
+ console.log('对应啥数据', this.$refs.list.$refs.paged.$refs.cri.model[key])
185
+ this.$refs.list.$refs.paged.$refs.cri.model[key] = []
186
+ })
187
+ // console.log('清数据。。。', this.$refs.list.$refs.paged.$refs.grid.model.rows)
188
+ // this.$set('$refs.list.$refs.paged.$refs.grid.model.rows', [])
189
+ },
190
+ dealMsg (obj) {
191
+ console.log('==================obj', obj)
192
+ this.listpage = false
193
+ this.rowData = obj
194
+ },
195
+ cancel (obj) {
196
+ this.listpage = true
197
+ },
198
+ cancelAndRefresh (obj) {
199
+ this.listpage = true
200
+ this.clean()
201
+ this.clearCondition()
202
+ this.$refs.list.searchNoData()
203
+ this.$refs.card.search()
204
+ },
205
+ modalsuccess (obj) {
206
+ this.showModal = false
207
+ this.$refs.list.criteriaShow = false
208
+ this.row = obj
209
+ this.cardInfo = this.$refs.list.cardInfo
210
+ // 将列表只显示该条数据
211
+ this.$refs.list.refreshRow(obj)
212
+ },
213
+ async serRow (obj) {
214
+ let newdata = await this.$resetpost('rs/sql/sale_getUser', {
215
+ data: {condition: `i.f_userinfo_code='${obj.f_userinfo_code}' and u.f_filialeid = '${obj.f_filialeid}'`, orderitem: `f_userinfo_id Desc`}
216
+ }, {resolveMsg: null, rejectMsg: '获取用户信息失败'})
217
+ this.toBusiness(newdata.data[0])
218
+ // this.$refs.list.search()
219
+ }
220
+ },
221
+ events: {
222
+ 'error' (name, row, res) {
223
+ this.clean()
224
+ },
225
+ 'row' (val) {
226
+
227
+ },
228
+
229
+ 'success' (name, row, res) {
230
+ this.setsustainMoney()
231
+ // name === '发卡售气' ? this.$refs.list.toNext(this.index) : null
232
+ if (name === '机表收费确认') {
233
+ this.serRow(row)
234
+ return
235
+ }
236
+ if (name === '卡表收费' && this.reSearchShowMsy) {
237
+ this.$refs.list.$refs.paged.$refs.cri.$refs.readcard.readCard()
238
+ this.$refs.oper.noButton = false
239
+ return
240
+ }
241
+ if (name === '物联网收费' && this.reSearchShowMsy) {
242
+ this.serRow(row)
243
+ return
244
+ }
245
+ console.log('成功事件')
246
+ this.clean()
247
+ this.$refs.list.search()
248
+ // this.clearCondition()
249
+ // this.$refs.card.search()
250
+ // this.$refs.info.$refs.recordstoryinfo.getdata()
251
+ },
252
+ 'clean' (row) {
253
+ // this.$refs.list.singleRefresh(row)
254
+ this.clean()
255
+ },
256
+ 'refresh' () {
257
+ this.setsustainMoney()
258
+ this.clean()
259
+ this.clearCondition()
260
+ this.$refs.list.searchNoData()
261
+ this.$refs.card.search()
262
+ },
263
+ 'resflushvalue' () {
264
+ this.$refs.info.$refs.valueaddinfo.reflush()
265
+ },
266
+ 'resflushrowdata' () {
267
+ this.toBusiness(this.row)
268
+ },
269
+ 'resflushdata' (data) {
270
+ this.toBusiness(data)
271
+ },
272
+ 'refreshrow' (val) {
273
+ console.log(val)
274
+ this.row = val
275
+ this.$refs.list.refreshRow(val)
276
+ // this.$refs.card.search()
277
+ },
278
+ 'cancelclean' (row) {
279
+ this.clean()
280
+ this.$refs.list.searchNoData()
281
+ // this.$refs.card.search()
282
+ }
283
+ },
284
+ watch: {
285
+ 'row' () {
286
+ // this.$refs.tab.$el.click()
287
+ }
288
+ }
289
+ }
290
+ </script>
291
+ <style>
292
+ .basic-main {
293
+ width: 79%;
294
+ }
295
+ .tel_voiceActive{
296
+ font-family: PingFang-SC-Bold;
297
+ font-size: 16px;
298
+ font-weight: normal!important;
299
+ font-stretch: normal!important;
300
+ line-height: 18px;
301
+ letter-spacing: 0px;
302
+ color: #333333!important;
303
+ border-bottom: 3px solid #599fe5;
304
+ padding:10px 10px!important;
305
+ }
306
+ .tel_f_size{
307
+ font-family: PingFang-SC-Medium;
308
+ font-size: 16px;
309
+ font-weight: normal;
310
+ font-stretch: normal;
311
+ line-height: 18px;
312
+ letter-spacing: 0px;
313
+ color: #666666!important;
314
+ padding:10px 10px!important;
315
+ }
316
+ </style>
@@ -0,0 +1,319 @@
1
+ <template>
2
+ <div class="form-inline" style="height: auto">
3
+ <div class="form-group" v-for="btn in operBtns">
4
+ <button :id="btn.name" type="button"
5
+ :style="['其他欠费','调价补差'].includes(btn.name) ?'color:#CA2C16':'color:black'"
6
+ :class="[($index === 0) ? 'btn btn-click' : 'btn btn-un-click']" @click="business(btn)"
7
+ :disabled="noButton"><span
8
+ :style="['其他欠费','调价补差'].includes(btn.name) ?'color:#CA2C16':'color:black'">{{ btn.name }}</span>
9
+ </button>
10
+
11
+ </div>
12
+ </div>
13
+ <div v-show="isBusiness" style="height: auto" class="select-overspread">
14
+ <route v-ref:route></route>
15
+ </div>
16
+ <modal :show.sync="modalContornShow" backdrop="false" width="50%" title="提示信息">
17
+ <article slot="modal-body">
18
+ <div style="width:98%;margin: auto">
19
+ <p>该用户未签合同请问是否进行签约</p>
20
+ </div>
21
+ </article>
22
+ <footer slot="modal-footer" class="modal-footer" style="border: 0">
23
+ <button class="button_search" @click="abolishcontr()">取消</button>
24
+ <button class="button_search" @click="confcontor()">确认</button>
25
+ </footer>
26
+ </modal>
27
+ <contract-signing :show="contractShow" @toggle="eticket_toggle" v-ref:contractbill></contract-signing>
28
+ </template>
29
+
30
+ <script>
31
+ import {HttpResetClass} from 'vue-client'
32
+ import Vue from 'vue'
33
+
34
+ let getNewmetermsg = async function (self, row) {
35
+ self.cardInfo = undefined
36
+ if (row.f_userfiles_id && row.f_userfiles_id.length > 0) {
37
+ // 获取用户信息
38
+ let getUser = await self.$resetpost('rs/sql/sale_getUser', {
39
+ data: {
40
+ condition: `u.f_userfiles_id='${row.f_userfiles_id}' `,
41
+ orderitem: `u.f_userfiles_id Desc`
42
+ }
43
+ }, {resolveMsg: '读卡新的用户成功', rejectMsg: '读卡新的用户失败'})
44
+ if (getUser.data.length > 0) {
45
+ await self.$showAlert('换表成功', 'success', 200)
46
+ self.data = getUser.data[0]
47
+ }
48
+ }
49
+ }
50
+ let getBtnsGen = async function (self) {
51
+ let http = new HttpResetClass()
52
+ let param = {
53
+ f_userfiles_id: self.data.f_userfiles_id
54
+ }
55
+ if (self.cardInfo) {
56
+ param.cardInfo = self.cardInfo
57
+ }
58
+ let res = await http.load('POST', 'rs/logic/getOperBtns', {
59
+ data: param
60
+ }, {
61
+ resolveMsg: null,
62
+ rejectMsg: '获取业务按钮失败!!'
63
+ })
64
+ let getBtns = res.data
65
+ console.log('获取的业务按钮', getBtns)
66
+ console.log('有没有用户信息', self.data)
67
+ if (self.$login.r.length === 0) {
68
+ self.$showAlert('您没有相关的业务操作权限, 请联系管理员!!', 'warning', 2000)
69
+ } else {
70
+ self.temp = []
71
+ for (let i = 0; i < getBtns.length; i++) {
72
+ // 不需要权限的按钮
73
+ let noInclude = getBtns[i].name === '垃圾费收费'
74
+ if (noInclude || self.$login.r.includes(getBtns[i].name)) {
75
+ // 进行权限验证
76
+ if (getBtns[i].name === '换表&清零') {
77
+ self.temp.push({
78
+ name: '换表',
79
+ value: getBtns[i].value
80
+ })
81
+ if (self.data.f_totalsplit_type !== '总表') {
82
+ self.temp.push({
83
+ name: '清零',
84
+ value: {
85
+ 'weight': getBtns[i].value.weight,
86
+ 'routeName': 'reset-meter'
87
+ }
88
+ })
89
+ }
90
+ } else {
91
+ self.temp.push(getBtns[i])
92
+ }
93
+ console.log(self.temp[i])
94
+ }
95
+ }
96
+ // 如果有未写卡记录,添加线下写卡按钮
97
+ if (self.data.unWriteSell) {
98
+ if (self.data.unWriteSell.length > 0) {
99
+ self.temp.push({
100
+ name: '线下写卡',
101
+ value: {
102
+ 'weight': 0,
103
+ 'routeName': 'un-write-card-center'
104
+ }
105
+ })
106
+ }
107
+ }
108
+ if (self.data.f_user_nature === '单位') {
109
+ self.temp.push({
110
+ name: '维管收费',
111
+ value: {
112
+ 'weight': 5,
113
+ 'routeName': 'repair-charge'
114
+ }
115
+ })
116
+ }
117
+ if (self.data.f_meter_type === '物联网表') {
118
+ if (self.data.f_hascard === '是') {
119
+ if (self.data.f_whether_hairpin === '未发') {
120
+ if (self.data.f_share_times !== '' && self.data.f_share_times === '是' && self.data.f_times > 0) {
121
+ self.temp.push({
122
+ name: '补卡',
123
+ value: {
124
+ 'weight': 2,
125
+ 'routeName': 'replace-card-manage'
126
+ }
127
+ })
128
+ } else {
129
+ }
130
+ }
131
+ }
132
+ }
133
+ // 如果卡上有气,添加购气撤销按钮
134
+ if (self.cardInfo && (self.cardInfo.Gas > 0 || self.cardInfo.Money > 0 || (self.cardInfo.TotalMoney > 0 && self.data.f_support_purchase === '是'))) {
135
+ self.temp.push({
136
+ name: '购气撤销',
137
+ value: {
138
+ 'weight': 0,
139
+ 'routeName': 'card-meter-charge-cancel'
140
+ }
141
+ })
142
+ if (self.data.unWriteSell && self.data.unWriteSell.length > 0) {
143
+ // 过滤掉线下写卡
144
+ self.temp = self.temp.filter((item) => {
145
+ return item.name !== '线下写卡'
146
+ })
147
+ self.data.unWriteSell.forEach(
148
+ async (item) => {
149
+ let sql = `update t_sellinggas set f_write_card = null where id = '${item.id}' and f_write_card ='写卡失败'`
150
+ await self.$resetpost('rs/logic/runSQL', { sql: sql })
151
+ }
152
+ )
153
+ }
154
+ }
155
+ /* // 如果是预备户,删除发卡售气按钮
156
+ if (self.data.f_user_state == '预备') {
157
+ self.temp.splice(self.temp.findIndex(item => item.name === '发卡售气'), 1)
158
+ } */
159
+
160
+ // 根据权重将业务按钮排序
161
+ self.operBtns = self.temp.sort((a, b) => {
162
+ return a.value.weight - b.value.weight
163
+ })
164
+
165
+ // 当有调价补差时,只展示调价补差按钮
166
+ let adjustSenders = self.operBtns.find((row) => {
167
+ return row.name == '调价补差'
168
+ })
169
+ if (adjustSenders) {
170
+ self.operBtns = []
171
+ self.operBtns.push(adjustSenders)
172
+ }
173
+
174
+ if (self.operBtns.length > 0) {
175
+ self.isBusiness = true
176
+ self.$refs.route.init(self.operBtns[0].value.routeName, {row: self.data, cardData: self.cardInfo})
177
+ self.styleChange(self.operBtns[0])
178
+ }
179
+ }
180
+ // 判断是否签订合同
181
+ console.log('----------111-------------')
182
+ console.log(self.data)
183
+ console.log('-----------1111------------')
184
+ if (self.data.f_is_signature !== '是') {
185
+ self.modalContornShow = true
186
+ }
187
+ }
188
+
189
+ export default {
190
+ title: '业务操作',
191
+ data() {
192
+ return {
193
+ operBtns: [],
194
+ isBusiness: false,
195
+ modalContornShow: false,
196
+ contractShow: false,
197
+ userinfoid: '',
198
+ noButton: false // 业务请求时禁止按钮点击
199
+ }
200
+ },
201
+ props: ['data', 'cardInfo'],
202
+ ready() {
203
+ getBtnsGen(this)
204
+ console.log('data,cardInfo', this.data, this.cardInfo)
205
+
206
+ },
207
+ methods: {
208
+ eticket_toggle () {
209
+ this.contractShow = false
210
+ },
211
+ confcontor () {
212
+ this.contractShow = true
213
+ this.modalContornShow = false
214
+ this.$refs.contractbill.getContractData(this.data.f_userinfo_id)
215
+ },
216
+ abolishcontr () {
217
+ this.modalContornShow = false
218
+ },
219
+ business (btn) {
220
+ // // 处理按钮样式
221
+ // this.styleChange(btn.name)
222
+ // this.isBusiness = true
223
+ // this.$refs.route.init(btn.value.routeName, {row: this.data, cardData: this.cardInfo})
224
+ if (this.$refs.route.cards.length > 0) {
225
+ if (this.$refs.route.cards[0].title == '增值服务管理') {
226
+ this.$showMessage('切换页面后,当前页面数据会丢失,是否切换?', ['confirm', 'cancel']).then(res => {
227
+ if (res == 'cancel') {
228
+ return;
229
+ } else {
230
+ // 处理按钮样式
231
+ this.styleChange(btn.name)
232
+ this.isBusiness = true
233
+ this.$refs.route.init(btn.value.routeName, {row: this.data, cardData: this.cardInfo})
234
+ }
235
+ })
236
+ } else {
237
+ // 处理按钮样式
238
+ this.styleChange(btn.name)
239
+ this.isBusiness = true
240
+ this.$refs.route.init(btn.value.routeName, {row: this.data, cardData: this.cardInfo})
241
+ }
242
+ }
243
+ },
244
+
245
+ styleChange(name) {
246
+ this.operBtns.forEach((res) => {
247
+ if (res.name === name) {
248
+ if (document.getElementById(res.name)) {
249
+ document.getElementById(res.name).style.backgroundColor = '#6aa6e2'
250
+ document.getElementById(res.name).style.color = 'white'
251
+ }
252
+ } else {
253
+ if (document.getElementById(res.name)) {
254
+ document.getElementById(res.name).style.backgroundColor = 'white'
255
+ document.getElementById(res.name).style.color = 'black'
256
+ }
257
+ }
258
+ })
259
+ }
260
+ },
261
+ watch: {
262
+ 'data'() {
263
+ getBtnsGen(this)
264
+ }
265
+ },
266
+ events: {
267
+ 'no-button'() {
268
+ this.noButton = true
269
+ },
270
+ 'has-button'() {
271
+ this.noButton = false
272
+ },
273
+ 'get-new-row'(row) {
274
+ console.log('xxxxxx', row)
275
+ // 发生换表成功
276
+ getNewmetermsg(this, row)
277
+ },
278
+ 'toroute' (buttonObj, data) {
279
+ console.log('指定按钮。。', buttonObj)
280
+ this.$resetpost('rs/sql/sale_getUser', {
281
+ data: {condition: `i.f_userinfo_code='${data.f_userinfo_code}' and u.f_filialeid = '${data.f_filialeid}'`, orderitem: `f_userinfo_id Desc`}
282
+ }, {resolveMsg: null, rejectMsg: '获取用户信息失败'}).then((res)=>{
283
+ if (buttonObj) {
284
+ this.$dispatch('resflushdata', res.data[0])
285
+ this.styleChange(buttonObj.name)
286
+ this.$refs.route.init(buttonObj.value, {row: res.data[0]})
287
+ }
288
+ })
289
+ },
290
+ 'button-specifies'(buttonObj, data) {
291
+ console.log('指定按钮。。', buttonObj)
292
+ // buttonObj 格式: {name:'机表收费', value: 'machine-meter-center'}
293
+ if (buttonObj) {
294
+ this.styleChange(buttonObj.name)
295
+ this.$refs.route.init(buttonObj.value, {row: data})
296
+ }
297
+ }
298
+ }
299
+ }
300
+ </script>
301
+
302
+ <style scoped>
303
+
304
+ .btn-click {
305
+ background-color: #6aa6e2;
306
+ border-radius: 5px;
307
+ color: white;
308
+ /*border-color: black;*/
309
+ border: solid 1px #c7c7c7;
310
+ }
311
+
312
+ .btn-un-click {
313
+ background-color: white;
314
+ border-radius: 5px;
315
+ color: black;
316
+ /*border-color: black;*/
317
+ border: solid 1px #c7c7c7;
318
+ }
319
+ </style>
@@ -14,6 +14,10 @@ export default function () {
14
14
  Vue.component('un-write-card-center', (resolve) => { require(['./UnWriteCardCenter'], resolve) })
15
15
  // 当前选择用户的用户基本信息
16
16
  Vue.component('sale-userinfo', (resolve) => { require(['./Userinfo'], resolve) })
17
+ // 售气收费 --收费gas-move
18
+ Vue.component('charge-manage', (resolve) => { require(['./ChargeManage'], resolve) })
19
+ // 业务操作组件
20
+ Vue.component('charge-oper', (resolve) => { require(['./ChargeOper'], resolve) })
17
21
  // 卡表收费
18
22
  Vue.component('card-meter-center', (resolve) => { require(['./CardMeterCenter'], resolve) })
19
23
  // 物联网表收费
@@ -22,4 +26,5 @@ export default function () {
22
26
  Vue.component('machine-meter-center', (resolve) => { require(['./MachineMeterCenter'], resolve) })
23
27
  // 其他收费xin
24
28
  Vue.component('other-charge-new', (resolve) => { require(['./OtherChargeNew'], resolve) })
29
+
25
30
  }
@@ -9,7 +9,7 @@
9
9
  <label class="font_normal_body" title="归属日期" >开始时间</label>
10
10
  <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_start_date"
11
11
  class="datepicker"
12
- condition="f_hand_date >= '{} 00:00:00' "
12
+ condition="f_input_date >= '{} 00:00:00' "
13
13
  placeholder="起始时间"
14
14
  style="width:60%"
15
15
  v-model="model.f_start_date"
@@ -19,7 +19,7 @@
19
19
  <label class="font_normal_body" title="归属日期">结束时间</label>
20
20
  <datepicker :format="'yyyy-MM-dd'" :value.sync="model.f_end_date"
21
21
  class="datepicker"
22
- condition="f_hand_date <= '{} 23:59:59' "
22
+ condition="f_input_date <= '{} 23:59:59' "
23
23
  placeholder="结束时间"
24
24
  style="width:60%"
25
25
  v-model="model.f_end_date"
@@ -0,0 +1,168 @@
1
+
2
+ import co from 'co'
3
+
4
+ let socket
5
+ let _this
6
+ export let dictGetArray = new Array()
7
+ export let htmlPath = 'c:\\sign\\suite\\frame\\'
8
+ //打开签字 js 模块
9
+ export function jsign_open(self) {
10
+ let gen = connectGen(self)
11
+ return co(gen)
12
+ }
13
+
14
+ let connectGen = function * (self){
15
+ var serverclosed = 1;
16
+ var host = "ws://localhost:81/test";
17
+ _this = self
18
+ try{
19
+ socket = new WebSocket(host);
20
+ socket.onopen = () =>{
21
+ console.log('onopen')
22
+ serverclosed = 0;
23
+ console.log('open的serverclosed',serverclosed)
24
+ socket.send('0'+'jsign');
25
+ }
26
+
27
+ socket.onmessage = (msg) =>{
28
+ console.log('接受消息',msg)
29
+ var str = "";
30
+ str = msg.data;
31
+ var id = str.substr(0, 1);
32
+ var separator = str.indexOf("|");
33
+ var arg1 = "";
34
+ var arg2 = "";
35
+ if(separator != -1) {
36
+ arg1 = str.substr(1, separator-1);
37
+ arg2 = str.substr(separator+1);
38
+ }
39
+ else
40
+ arg1 = str.substr(1);
41
+
42
+ if(id == "0"){
43
+
44
+ }
45
+ if(id == "1"){
46
+ var buf = arg1.substr(0,4);
47
+ if(buf == 'sign') {
48
+ console.log('buuf')
49
+ jsign_sign_callback();
50
+ }
51
+ if(buf == 'get_') {
52
+ buf = arg1.substr(4);
53
+ var separator = buf.indexOf("_");
54
+ if(separator != -1) {
55
+ jsign_get_callback(buf.substr(0, separator), buf.substr(separator+1));
56
+ }
57
+ }
58
+ }
59
+ }
60
+
61
+ socket.onclose = function(){
62
+ }
63
+
64
+ } catch(exception){
65
+ console.log('异常信息',exception)
66
+ jsign_error_callback(2)
67
+ }
68
+ setTimeout(() => {
69
+ if( serverclosed == 1){
70
+ console.log('最后的serverclosed',serverclosed)
71
+ jsign_error_callback(1);
72
+ }
73
+ },2000);
74
+ }
75
+
76
+
77
+
78
+
79
+ //缓存有名字符串,按 key 存储
80
+ export function jsign_set_string(key,value){
81
+ var cmd = '1' + 'set_' + key + '_' + value;
82
+ if (socket.readyState===1) {
83
+ socket.send(cmd);
84
+ }
85
+ }
86
+
87
+ //读取有名字符串,按 key 搜索
88
+ export function jsign_get_string(key) {
89
+ console.log('搜索')
90
+ var cmd = '1' + 'get_' + key;
91
+ if (socket.readyState===1) {
92
+ socket.send(cmd);
93
+ }
94
+ }
95
+
96
+
97
+ export function jsign_get_device_status() {
98
+ var cmd = '1' + 'get_device_status';
99
+ console.log('socket状态----',socket.readyState)
100
+ if (socket.readyState == 1) {
101
+ console.log('开始发送消息')
102
+ socket.send(cmd);
103
+ }
104
+ }
105
+
106
+
107
+ //启动欢迎页或者广告页
108
+ export function jsign_run_welcome(fullpath) {
109
+ var cmd = '1'+'welc'+fullpath;
110
+ if (socket.readyState===1) {
111
+ socket.send(cmd);
112
+ }
113
+ }
114
+
115
+ //启动签字页,传入签字完成处理函数
116
+ export function jsign_run_sign(fullpath) {
117
+ var cmd = '1'+'sign'+fullpath;
118
+ if (socket.readyState===1) {
119
+ socket.send(cmd);
120
+ }
121
+ }
122
+
123
+
124
+ //启动评估页,传入评估完成处理函数
125
+ export function jsign_run_eval(fullpath) {
126
+ var cmd = '1'+'eval'+fullpath;
127
+ if (socket.readyState===1) {
128
+ socket.send(cmd);
129
+ }
130
+ }
131
+
132
+
133
+
134
+ //错误反馈信息接收函数
135
+ function jsign_error_callback(msgcode){
136
+ /*
137
+ 1. 服务程序没有工作
138
+ 2. 运行时错误
139
+ */
140
+ if(msgcode == 1){
141
+ _this.$showAlert('服务程序没有工作','danger',0)
142
+ return
143
+ }
144
+ if(msgcode == 2){
145
+ _this.$showAlert('运行时错误','danger',0)
146
+ }
147
+ }
148
+
149
+ //读取字符串处理函数
150
+ function jsign_get_callback(key, value){
151
+ console.log('处理字符串')
152
+ dictGetArray[key] = value;
153
+ }
154
+
155
+
156
+ //签字完成处理函数
157
+ function jsign_sign_callback(){
158
+ console.log('签字')
159
+ console.log(" dictGetArray", dictGetArray)
160
+ jsign_get_string('picture');
161
+ setTimeout(function(){
162
+ _this.imgstr = dictGetArray['picture']
163
+ _this.$showAlert('签字完成','success',2000);/*OutputLog(dictGetArray['picture']);*/
164
+ },500);
165
+ // setTimeout(function(){jsign_run_eval(demopath + 'eval.html');OutputLog('已推送评价页,请评价');},1000);
166
+ }
167
+
168
+
package/src/sale.js CHANGED
@@ -1206,4 +1206,6 @@ export default function () {
1206
1206
  Vue.component('host-meter-user-list', (resolve) => { require(['./components/FilesManage/HostMeterUserList'], resolve) })
1207
1207
  Vue.component('add-host-meter-user-list', (resolve) => { require(['./components/FilesManage/AddHostMeterUserList'], resolve) })
1208
1208
  Vue.component('add-sub-meter-user-list', (resolve) => { require(['./components/FilesManage/AddSubMeterUserList'], resolve) })
1209
+ // // 单户各表具用气量折断图
1210
+ Vue.component('contract-signing', (resolve) => { require(['./components/common/userinfo_detail/contractSigning'], resolve) })
1209
1211
  }
package/src/sign.html ADDED
@@ -0,0 +1,399 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>签字页</title>
6
+ <style>
7
+ *{
8
+ padding: 0;
9
+ margin: 0;
10
+ }
11
+ .s_conLeft {
12
+ width: 700px;
13
+ height: 750px;
14
+ padding: 20px;
15
+ position: relative;
16
+ background: #e8f8f8;
17
+ }
18
+ //.s_conLeft {
19
+ // width: 700px;
20
+ // height: 750px;
21
+ // padding: 20px;
22
+ // position: relative;
23
+ // background: #e8f8f8;
24
+ //}
25
+ .s_conLeftsing {
26
+ width: 700px;
27
+ height: 730px;
28
+ }
29
+ .s_conRight {
30
+ position: absolute;
31
+ top: 0;
32
+ right: 0;
33
+ left: 700px;
34
+ bottom: 0;
35
+ overflow: auto;
36
+ margin-top: 0px;
37
+ background: #e8f8f8;
38
+ margin-left: 50px;
39
+ }
40
+ //.s_conRight {
41
+ // position: absolute;
42
+ // top: 0;
43
+ // right: 0;
44
+ // left: 700px;
45
+ // bottom: 0;
46
+ // //overflow: auto;
47
+ // margin-top: -35px;
48
+ // background: #e8f8f8;
49
+ // margin-left: 50px;
50
+ //}
51
+
52
+ .sign_window
53
+ {
54
+ float:left;
55
+ width:500px;
56
+ height:300px;
57
+ position:absolute;
58
+ right:0px;
59
+ top:380px;
60
+ }
61
+
62
+ #open_close_sign
63
+ {
64
+ float:right;
65
+ width:60px;
66
+ height:60px;
67
+ background:#5E5EA2;
68
+ color:#ffffff;
69
+ margin-bottom:20px
70
+ }
71
+
72
+ #enter_sign
73
+ {
74
+ float:left;
75
+ width:100%;
76
+ height:100%;
77
+ background:#CCCC99;
78
+ }
79
+
80
+ .enter_sign_inner
81
+ {
82
+ float:left;
83
+ background:red;
84
+ width:100%;
85
+ height:30px;
86
+ line-height:30px;
87
+ opacity:0.4;
88
+ }
89
+
90
+ .enter_sign_inner p
91
+ {
92
+ margin-left:10px;
93
+ color:#ffffff;
94
+ }
95
+
96
+ .obj_id
97
+ {
98
+ float:left;
99
+ width:490px;
100
+ height:220px;
101
+ margin-top:5px;
102
+ margin-left:5px;
103
+ margin-right:5px;
104
+ background:#ffffff;
105
+ float:left;
106
+ overflow:hidden;
107
+ }
108
+
109
+ .sign_place
110
+ {
111
+ float:left;
112
+ position:absolute;
113
+ left:10px;
114
+ top:310px;
115
+ }
116
+
117
+ .sign_dashed
118
+ {
119
+ float:left;
120
+ border-bottom:1px dashed black;
121
+ width:435px;
122
+ height:30px;
123
+ position:absolute;
124
+ left:60px;
125
+ top:300px;
126
+ }
127
+
128
+ .sign_button
129
+ {
130
+ float:left;
131
+ background:#CCCC99;
132
+ width:100%;
133
+ height:45px;
134
+ }
135
+
136
+ .sign_button_inner
137
+ {
138
+ float:left;
139
+ margin-left:45px;
140
+ }
141
+
142
+ .sign_button_ok
143
+ {
144
+ float:left;
145
+ width:80px;
146
+ margin-left:20px;
147
+ margin-top:8px;
148
+ background:#0000ff;
149
+ padding:3px 5px;
150
+ color:#ffffff;
151
+ border:1px solid #0000ff;
152
+ }
153
+
154
+ .sign_button_resign
155
+ {
156
+ float:left;
157
+ width:80px;
158
+ margin-left:20px;
159
+ margin-top:8px;
160
+ background:#ff0000;
161
+ padding:3px 5px;
162
+ color:#ffffff;
163
+ border:1px solid #ff0000;
164
+ }
165
+ </style>
166
+ </head>
167
+ <body>
168
+ <script>
169
+ var obj;
170
+ //<!-- 笔响应支持脚本开始 -->
171
+ function _getTop(e){
172
+ var offset=e.offsetTop;
173
+ if(e.offsetParent!=null) offset+=_getTop(e.offsetParent);
174
+ return offset;
175
+ }
176
+ function _getLeft(e){
177
+ var offset=e.offsetLeft;
178
+ if(e.offsetParent!=null) offset+=_getLeft(e.offsetParent);
179
+ return offset;
180
+ }
181
+ function _buttonInfo(func, e){
182
+ _top = _getTop(e);
183
+ _left = _getLeft(e);
184
+ s = _top;
185
+ s += ','+_left;
186
+ s += ','+(e.offsetHeight+_top);
187
+ s += ','+(e.offsetWidth+_left);
188
+ s += ','+func
189
+ return s+';';
190
+ }
191
+ function _objectInfo(e){
192
+ return _buttonInfo("object", e);
193
+ }
194
+ function TInput_getButtonsInfo() {
195
+ var obj_ok = document.getElementById("button_ok");
196
+ ok = _buttonInfo("TInput_click_ok", obj_ok);
197
+ var obj_resign = document.getElementById("button_resign");
198
+ resign = _buttonInfo("TInput_click_resign", obj_resign);
199
+ var close_open=document.getElementById("open_close_sign");
200
+ close_open_btn = _buttonInfo("TInput_close_open", close_open);
201
+ activex = _objectInfo(obj);
202
+ s = ok + resign + close_open_btn + activex;
203
+ return s;
204
+ }
205
+
206
+ // <!-- 笔响应支持脚本结束 -->
207
+ window.onload = function(){
208
+ obj = document.getElementById("TInputSign");
209
+ obj.TInputSetString("license","VFZNMGQweHFRWFZOVVNVelJDVXpSQSUzRCUzRA=");
210
+ document.getElementById("singurl").src = decodeURI(obj.TInputGetString("singurl"));
211
+
212
+ setTimeout(function(){
213
+ obj.TInputInitialize();
214
+ obj.TInputMovetoExt();
215
+ obj.TInputRegisterButtonInfo(TInput_getButtonsInfo());
216
+ }, 600);
217
+ }
218
+ window.onunload=function(){
219
+ obj.TInputFinalize();
220
+ }
221
+
222
+ var $_GET = (function(){
223
+ var url = decodeURI(window.document.location.href.toString());
224
+ var u = url.split("?");
225
+ if(typeof(u[1]) == "string"){
226
+ u = u[1].split("&");
227
+ var get = {};
228
+ for(var i in u){
229
+ var j = u[i].split("=");
230
+ get[j[0]] = j[1];
231
+ }
232
+ return get;
233
+ } else {
234
+ return {};
235
+ }
236
+ })();
237
+
238
+ function button_click_ok(){
239
+ var stream;
240
+ var picture;
241
+ stream = obj.TInputGetStrokes();
242
+ if( stream == "" )
243
+ return;
244
+ picture = obj.TInputGetImage();
245
+ obj.TInputSetString("trace",stream);
246
+ obj.TInputSetString("picture", picture);
247
+ obj.TInputCloseSignFrame();
248
+ }
249
+ function button_click_resign(){
250
+ obj.TInputInitialize();
251
+ obj.TInputClear();
252
+ }
253
+
254
+ var flag = true;
255
+ function close_open_button(){
256
+ if(flag)
257
+ {
258
+ document.getElementById("enter_sign").style.display="block";
259
+ document.getElementById("open_close_sign").value="关闭";
260
+
261
+ }
262
+ else
263
+ {
264
+ document.getElementById("enter_sign").style.display="none";
265
+ document.getElementById("open_close_sign").value="打开";
266
+ }
267
+ flag = !flag;
268
+ }
269
+
270
+ //控件调用绑定的函数
271
+ function TInput_click_ok(){
272
+ button_click_ok();
273
+ }
274
+ function TInput_click_resign(){
275
+ button_click_resign();
276
+ }
277
+ function TInput_close_open(){
278
+ close_open_button();
279
+ }
280
+ function Move_Up_Btn(){
281
+ // document.getElementById("div1").style.backgroundColor="#000000";
282
+ move_up();
283
+ }
284
+ function move_up(){
285
+ // alert('up')
286
+ GoTop()
287
+ }
288
+ function Move_Down_Btn(){
289
+ // document.getElementById("div1").style.backgroundColor="#000000";
290
+ move_down();
291
+ }
292
+ function move_down(){
293
+ // alert('down')
294
+ GoBottom();
295
+ }
296
+
297
+ var currentPosition;
298
+ function GoTop() {
299
+ var scr = document.getElementById("div_scroll");
300
+ currentPosition = scr.scrollTop;
301
+
302
+ currentPosition -= 300;
303
+ if (currentPosition > 0) {
304
+ scr.scrollTop = currentPosition;
305
+ // scr.scrollTo(0, currentPosition);
306
+ // timer = setInterval("GoTop()", 10);
307
+ } else {
308
+ currentPosition = 0;
309
+ scr.scrollTop = currentPosition;
310
+ // scr.scrollTo(0, 0);
311
+
312
+ // window.clearInterval(timer);
313
+ }
314
+
315
+ }
316
+ var currentPosition2;
317
+ function GoBottom() {
318
+ var scr = document.getElementById("div_scroll");
319
+ // console.log('down');
320
+ // var scr = document.body;
321
+ currentPosition2 = scr.scrollTop;
322
+
323
+ currentPosition2 += 300;
324
+ if (currentPosition2 <= 3000) {
325
+ scr.scrollTop = currentPosition2;
326
+ // scr.scrollTo(0,currentPosition2);
327
+ // timer2 = setInterval("GoBottom()", 100);
328
+ } else {
329
+ scr.scrollTop = 3000;
330
+ // currentPosition = 1000;
331
+ // scr.scrollTo(0,1000);
332
+ // window.clearInterval(timer2);
333
+ }
334
+ }
335
+
336
+ /*
337
+ *回调
338
+ */
339
+ function TInputSignWebButtonClickCallback()
340
+ {
341
+ var fname = obj.GetClickedFuncname();
342
+ if(fname == "TInput_click_ok")
343
+ {
344
+ button_click_ok();
345
+ }
346
+ if(fname == "TInput_click_resign")
347
+ {
348
+ button_click_resign();
349
+ }
350
+ if(fname == "TInput_close_open")
351
+ {
352
+ close_open_button();
353
+ }
354
+ if(fname == "Move_Up_Btn")
355
+ {
356
+ move_up();
357
+ }
358
+ if(fname == "Move_Down_Btn")
359
+ {
360
+ move_down();
361
+ }
362
+ }
363
+ </script>
364
+ <div class="s_content">
365
+ <!-- <iframe class="s_conLeftsing" id="singurl"></iframe>-->
366
+ <div id="div_scroll" class="s_conLeft">
367
+ <iframe class="s_conLeftsing" id="singurl"></iframe>
368
+ </div>
369
+ </div>
370
+ <div class="s_conRight">
371
+ <div class="sign_window">
372
+ <button id="open_close_sign" onclick="close_open_button()">关闭</button>
373
+ <div id="enter_sign">
374
+ <div class=enter_sign_inner>
375
+ <p>请填写个人手写签名</p>
376
+ </div>
377
+ <div class="obj_id">
378
+ <object id="TInputSign"
379
+ classid="clsid:E4313E1C-8BF1-4B0F-81FF-46FB40581B27"
380
+ width="100%"
381
+ height="90%">
382
+ </object>
383
+ <SCRIPT FOR="TInputSign" EVENT="WebbtnClick()">
384
+ TInputSignWebButtonClickCallback();
385
+ </SCRIPT>
386
+ <div class="sign_place">签名栏:</div>
387
+ <div class="sign_dashed"></div>
388
+ </div>
389
+ <div class="sign_button">
390
+ <div class="sign_button_inner">
391
+ <button id="button_resign" class="sign_button_resign" onclick="button_click_resign()">重签</button>
392
+ <button id="button_ok" class="sign_button_ok" onclick="button_click_ok()">确认</button>
393
+ </div>
394
+ </div>
395
+ </div>
396
+ </div>
397
+ </div>
398
+ </body>
399
+ </html>