apply-clients 3.5.4-7 → 3.5.4-72

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.
Files changed (105) hide show
  1. package/build/dev-server.js +7 -11
  2. package/package.json +2 -2
  3. package/src/App.vue +25 -25
  4. package/src/apply.js +2 -3
  5. package/src/applyAndroid.js +2 -0
  6. package/src/assets//344/270/213/350/275/275.png +0 -0
  7. package/src/components/android/AppCheckTakePic.vue +168 -0
  8. package/src/components/android/Process/AppServiceControl.vue +4 -0
  9. package/src/components/android/Process/Processes/AppAddMaterialScience.vue +493 -493
  10. package/src/components/android/Process/Processes/AppChargeManagementNew.vue +637 -0
  11. package/src/components/android/Process/Processes/AppInstallationDetails.vue +480 -480
  12. package/src/components/image/dxf.png +0 -0
  13. package/src/components/product/Function/Service/FunctionServiceControl.vue +1 -1
  14. package/src/components/product/Material/MaterialDetailed.vue +1 -1
  15. package/src/components/product/MaterialsManage/MaterialsBase.vue +5 -1
  16. package/src/components/product/MaterialsManage/MaterialsManage.vue +2 -2
  17. package/src/components/product/PcZhihuanManagement.vue +160 -0
  18. package/src/components/product/Process/ExplorationSelect.vue +4 -1
  19. package/src/components/product/Process/ExplorationUser.vue +1 -0
  20. package/src/components/product/Process/Processes/addMaterialScience.vue +471 -471
  21. package/src/components/product/Process/Processes/chargeManagement.vue +1 -1
  22. package/src/components/product/ServiceView.vue +22 -1
  23. package/src/components/product/Supervisory/SupervisoryControl.vue +141 -140
  24. package/src/components/product/Supervisory/SupervisoryList.vue +452 -452
  25. package/src/filiale/baiyin/android/AppServiceControl.vue +1762 -0
  26. package/src/filiale/baiyin/android/ByAddMaterialScience.vue +823 -0
  27. package/src/filiale/baiyin/android/ByDeviceManagement.vue +916 -0
  28. package/src/filiale/baiyin/android.js +8 -0
  29. package/src/filiale/fugou/android/AppAddMaterialScience.vue +442 -0
  30. package/src/filiale/fugou/android/AppChargeManagement.vue +126 -12
  31. package/src/filiale/fugou/android/AppDevicesManagement.vue +519 -0
  32. package/src/filiale/fugou/android/AppInstallationDetails.vue +541 -0
  33. package/src/filiale/fugou/android/AppServiceControl.vue +21 -4
  34. package/src/filiale/fugou/android/AppZhihuanManagement.vue +191 -0
  35. package/src/filiale/fugou/android.js +6 -1
  36. package/src/filiale/fugou/pc/ExplorationSelect.vue +515 -0
  37. package/src/filiale/fugou/pc/InstallationDetails.vue +44 -32
  38. package/src/filiale/fugou/pc/ServiceControl.vue +124 -379
  39. package/src/filiale/fugou/pc/addMaterialScience.vue +482 -0
  40. package/src/filiale/fugou/pc/devicesManagement.vue +483 -0
  41. package/src/filiale/fugou/pc.js +4 -1
  42. package/src/filiale/gongyi/android/AppAddMaterialScience.vue +20 -8
  43. package/src/filiale/gongyi/android/AppDisclosurerecord.vue +214 -0
  44. package/src/filiale/gongyi/android/AppInstallationDetails.vue +15 -10
  45. package/src/filiale/gongyi/android/AppLegacyIssues.vue +309 -0
  46. package/src/filiale/gongyi/android/AppSign.vue +16 -3
  47. package/src/filiale/gongyi/android/AppSupplementalAgreement.vue +298 -0
  48. package/src/filiale/gongyi/android.js +3 -0
  49. package/src/filiale/gongyi/pc/ApplyUpload.vue +31 -39
  50. package/src/filiale/gongyi/pc/PcAddLogs.vue +12 -4
  51. package/src/filiale/gongyi/pc/PcDisclosurerecord.vue +218 -0
  52. package/src/filiale/gongyi/pc/PcLegacyIssues.vue +309 -0
  53. package/src/filiale/gongyi/pc/SupervisoryServiceControl.vue +1 -1
  54. package/src/filiale/gongyi/pc/SupervisoryServiceView.vue +1005 -0
  55. package/src/filiale/gongyi/pc/addMaterialScience.vue +43 -7
  56. package/src/filiale/gongyi/pc/chargeManagement.vue +765 -0
  57. package/src/filiale/gongyi/pc/supplementalAgreement.vue +277 -0
  58. package/src/filiale/gongyi/pc.js +6 -1
  59. package/src/filiale/hongda/pc/SupervisoryList.vue +13 -0
  60. package/src/filiale/jinhuang/pc/ServiceControl.vue +1925 -0
  61. package/src/filiale/jinhuang/pc/chargeManagementNew.vue +589 -0
  62. package/src/filiale/jinhuang/pc.js +7 -0
  63. package/src/filiale/qianneng/android/AppChargeManagement.vue +686 -0
  64. package/src/filiale/qianneng/android/AppExplorationUser.vue +38 -0
  65. package/src/filiale/qianneng/android/AppInstallationDetails.vue +20 -11
  66. package/src/filiale/qianneng/android.js +2 -1
  67. package/src/filiale/qianneng/pc/ApplyUpload.vue +5 -4
  68. package/src/filiale/qianneng/pc/Applybatchdispatch.vue +11 -6
  69. package/src/filiale/qianneng/pc/Applydetail.vue +0 -5
  70. package/src/filiale/qianneng/pc/InstallFunction.vue +2 -2
  71. package/src/filiale/qianneng/pc/InstallationDetails.vue +32 -4
  72. package/src/filiale/qianneng/pc/ServiceControl.vue +1 -0
  73. package/src/filiale/qianneng/pc/printactivatecard.vue +6 -6
  74. package/src/filiale/ruihua/pc/InstallationDetails.vue +610 -610
  75. package/src/filiale/ruihua/pc/ServiceControl.vue +20 -0
  76. package/src/filiale/ruihua/pc/printVentilation.vue +21 -6
  77. package/src/filiale/ruihua/pc.js +12 -12
  78. package/src/filiale/shexian/android/AppServiceControl.vue +12 -2
  79. package/src/filiale/shexian/android/AppTakePic.vue +15 -55
  80. package/src/filiale/siyangRH/android/AppAddMaterialScience.vue +0 -2
  81. package/src/filiale/siyangRH/pc/chargeManagement.vue +810 -0
  82. package/src/filiale/siyangRH/pc.js +1 -0
  83. package/src/filiale/yangchunboneng/android/AppChargeManagement.vue +16 -1
  84. package/src/filiale/yangchunboneng/android/AppDevicesManagement.vue +32 -2
  85. package/src/filiale/yangchunboneng/android/AppExplorationUser.vue +518 -506
  86. package/src/filiale/yangchunboneng/android/AppInstallationMaterial.vue +1083 -1092
  87. package/src/filiale/yangchunboneng/android/AppServiceControl.vue +34 -1
  88. package/src/filiale/yangchunboneng/android/AppSuperServiceControl.vue +1524 -1524
  89. package/src/filiale/yangchunboneng/android/AppUpload.vue +205 -136
  90. package/src/filiale/yangchunboneng/android/MaterIialOne.vue +156 -144
  91. package/src/filiale/yangchunboneng/android.js +20 -20
  92. package/src/filiale/yangchunboneng/pc/ApplyUpload.vue +392 -375
  93. package/src/filiale/yangchunboneng/pc/ExplorationSelect.vue +59 -19
  94. package/src/filiale/yangchunboneng/pc/ExplorationUser.vue +191 -0
  95. package/src/filiale/yangchunboneng/pc/InstallInfoSelect.vue +365 -365
  96. package/src/filiale/yangchunboneng/pc/ServiceControl.vue +206 -2
  97. package/src/filiale/yangchunboneng/pc/SupervisoryControlNew.vue +142 -0
  98. package/src/filiale/yangchunboneng/pc/SupervisoryList.vue +590 -535
  99. package/src/filiale/yangchunboneng/pc/SupervisoryListNew.vue +628 -0
  100. package/src/filiale/yangchunboneng/pc/SupervisoryServiceControl.vue +902 -0
  101. package/src/filiale/yangchunboneng/pc/SupervisoryServiceControlNew.vue +901 -0
  102. package/src/filiale/yangchunboneng/pc/SupervisoryServiceView.vue +1117 -0
  103. package/src/filiale/yangchunboneng/pc/chargeManagement.vue +111 -13
  104. package/src/filiale/yangchunboneng/pc.js +24 -18
  105. package/src/main.js +1 -1
@@ -1,136 +1,205 @@
1
- <template>
2
- <div class="panel">
3
- <div class="panel-body panel-self" style="background-color: #F8F8F8;">
4
- <div class="row text-right form-group" >
5
- <v-select
6
- class="fileType"
7
- placeholder="请选择使用类型"
8
- :search="false"
9
- close-on-select
10
- value-single
11
- :options="typeList"
12
- v-model="type"
13
- :value.sync="type"
14
- ></v-select>
15
- <v-select
16
- class="fileType"
17
- placeholder="请选择上传节点"
18
- :search="false"
19
- close-on-select
20
- value-single
21
- :options="defnames"
22
- v-model="defname"
23
- :value.sync="defname"
24
- ></v-select>
25
- <button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click.prevent="getFiles">搜索</button>
26
- </div>
27
- <div style="overflow: scroll;display: flex;flex-wrap: wrap;">
28
- <div class=" showData" v-for="(index,file) in fileList">
29
- <img-self :src="file.f_downloadURL" :width="120" :height="170"></img-self>
30
- <img v-if="isdelete" src="../../../../src/assets/删除.png" style="width: 15px;" @click.prevent="delfile(file, index)">
31
- <p :title="row.f_uploaddate" class="clears"><strong>上传时间:</strong><span>{{ file.f_uploaddate }}</span></p>
32
- <p :title="row.fusetype" class="clears"><strong>使用类型:</strong><span>{{ file.fusetype }}</span></p>
33
- <p :title="row.defname" class="clears"><strong>上传节点:</strong><span>{{ file.defname }}</span></p>
34
- </div>
35
- </div>
36
- </div>
37
- </div>
38
- </template>
39
-
40
- <script>
41
- import {HttpResetClass} from 'vue-client'
42
- import {guid, toStandardTimeString} from '../../../components/Util'
43
- import Vue from 'vue'
44
- export default {
45
- title: '附件',
46
- props: ['blobid', 'isdelete'],
47
- data () {
48
- return {
49
- fileList: [],
50
- type:'',
51
- defname:''
52
- }
53
- },
54
- ready () {
55
- this.getFiles()
56
- },
57
- methods: {
58
- async getFiles () {
59
- console.log('----------------开始查询图片----------------')
60
- this.fileList = []
61
-
62
- let http = new HttpResetClass()
63
-
64
- let data = {
65
- tablename: 't_files',
66
- condition: `f_blobid = '${this.blobid}' and f_filetype in ('jpg','png') `
67
- }
68
- if (this.type){
69
- data.condition += `and fusetype = '${this.type}'`
70
- }
71
- if (this.defname){
72
- data.condition += `and defname = '${this.defname}'`
73
- }
74
- data.condition += ` order by f_uploaddate desc `
75
- let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/apply_singleTable`, {data: data}, {
76
- // let res = await http.load('POST', `rs/sql/apply_singleTable`, {data: data}, {
77
- warnMsg: null,
78
- resolveMsg: null
79
- })
80
-
81
- for (var i = 0; i < res.data.length; i++) {
82
- console.log('-----------地址----------------')
83
- console.log(`${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`)
84
- res.data[i].f_downloadURL = `${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`
85
- }
86
-
87
- this.fileList = res.data
88
- },
89
- delfile (file, index) {
90
- this.$resetdelete(`${this.$androidUtil.getProxyUrl()}/rs/entity/t_files`, {id: file.id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
91
- this.$dispatch("delResid", file.id)
92
- this.getFiles()
93
- })
94
- }
95
- },
96
- computed: {
97
- typeList () {
98
- if (this.typelabel) {
99
- return this.$appdata.getParam(this.typelabel)
100
- }
101
- return this.$appdata.getParam('报建-使用类型')
102
- },
103
- defnames () {
104
- return this.$appdata.getParam('报建节点')
105
- }
106
- },
107
- events: {
108
- }
109
- }
110
- </script>
111
-
112
- <style lang="less">
113
- .clears {
114
- margin: 0;
115
- font-size: 10px;
116
- text-overflow: ellipsis;
117
- white-space: nowrap;
118
- }
119
- .showData {
120
- padding: 15px 10px 0px 10px;
121
- box-sizing: border-box;
122
- width: 50%;
123
- font-family: "微软雅黑";
124
- }
125
- .fileType {
126
- float: left;
127
- .select-style {
128
- background: #f8f8f8;
129
- border: 0px;
130
- }
131
- input {
132
- border-left: none;
133
- width: 100%;
134
- }
135
- }
136
- </style>
1
+ <template>
2
+ <div class="panel">
3
+ <div class="panel-body panel-self" style="background-color: #F8F8F8;">
4
+ <div class="row text-right form-group" >
5
+ <v-select
6
+ class="fileType"
7
+ placeholder="请选择使用类型"
8
+ :search="false"
9
+ close-on-select
10
+ value-single
11
+ :options="typeList"
12
+ v-model="type"
13
+ :value.sync="type"
14
+ ></v-select>
15
+ <v-select
16
+ class="fileType"
17
+ placeholder="请选择上传节点"
18
+ :search="false"
19
+ close-on-select
20
+ value-single
21
+ :options="defnames"
22
+ v-model="defname"
23
+ :value.sync="defname"
24
+ ></v-select>
25
+ <button class="btn" style="background-color: #7dc1f4;border-radius: 5px;margin-right: 10px" @click.prevent="getFiles">搜索</button>
26
+ </div>
27
+ <div style="overflow: scroll;display: flex;flex-wrap: wrap;">
28
+ <div class=" showData" v-for="(index,file) in fileList" >
29
+ <img-self
30
+ v-if="file.f_filetype=='jpg'|| file.f_filetype =='png' || file.f_filetype == 'gif' || file.f_filetype == 'bmp'"
31
+ :src="file.f_downloadURL" :width="120" :height="170"></img-self>
32
+ <img style="width: -webkit-fill-available" v-if="file.f_filetype === 'pdf'" src="../../../components/image/pdf.jpg" alt="" :width="120" :height="170"/>
33
+ <img style="width: -webkit-fill-available" v-if="file.f_filetype === 'xls'||file.f_filetype === 'xlsx'" src="../../../components/image/excel.jpg" alt="" :width="120" :height="170"/>
34
+ <img style="width: -webkit-fill-available" v-if="file.f_filetype === 'doc'||file.f_filetype === 'docx'" src="../../../components/image/doc.jpg" alt="" :width="120" :height="170"/>
35
+ <img style="width: -webkit-fill-available" v-if="file.f_filetype === 'dwg'" src="../../../components/image/dwg.jpg" alt="" :width="120" :height="170"/>
36
+ <img style="width: -webkit-fill-available" v-if="file.f_filetype === 'dxf'" src="../../../components/image/dxf.png" alt="" :width="120" :height="170"/>
37
+ <img v-if="isdelete" src="../../../../src/assets/删除.png" style="width: 15px;" @click.prevent="delfile(file, index)">
38
+ &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
39
+ <img v-if="isdelete" src="../../../../src/assets/下载.png" style="width: 15px;" @click.prevent="dowloadfile(file, index)">
40
+ <p :title="row.f_uploaddate" class="clears"><strong>上传时间:</strong><span>{{ file.f_uploaddate }}</span></p>
41
+ <p :title="row.fusetype" class="clears"><strong>使用类型:</strong><span>{{ file.fusetype }}</span></p>
42
+ <p :title="row.defname" class="clears"><strong>上传节点:</strong><span>{{ file.defname }}</span></p>
43
+ </div>
44
+ </div>
45
+ </div>
46
+ <modal v-if="showModal" :show.sync="showModal" v-ref:modal :large="true"
47
+ :backdrop="false">
48
+ <header slot="modal-header" class="modal-header">
49
+ <button type="button" class="close" @click="closeM"><span>&times;</span></button>
50
+ <h4 class="modal-title" style="color: red">请复制链接到浏览器下载</h4>
51
+ </header>
52
+ <article slot="modal-body" class="modal-body clearfix">
53
+ <span>{{linke}}</span>
54
+ </article>
55
+ <footer slot="modal-footer" class="modal-footer">
56
+ <template >
57
+ <button type="button" class="btn btn-primary" @click="closeM">关闭</button>
58
+ </template>
59
+ </footer>
60
+ </modal>
61
+ </div>
62
+ </template>
63
+
64
+ <script>
65
+ import {HttpResetClass} from 'vue-client'
66
+ import {guid, toStandardTimeString} from '../../../components/Util'
67
+ import Vue from 'vue'
68
+ export default {
69
+ title: '附件',
70
+ props: ['blobid', 'isdelete','pblobid', 'defname'],
71
+ data () {
72
+ return {
73
+ fileList: [],
74
+ type:'',
75
+ defname:'',
76
+ linke:'',
77
+ showModal: false,
78
+ }
79
+ },
80
+ ready () {
81
+ this.getFiles()
82
+ },
83
+ methods: {
84
+ closeM(){
85
+ this. showModal=false
86
+ this.linke =''
87
+ },
88
+ dowloadfile(file, index){
89
+ this.showModal = true
90
+ this.linke = file.f_downloadURL
91
+ },
92
+ //查询父工程附件
93
+ async pgetFiles () {
94
+ if(this.pblobid==''||this.pblobid==null){
95
+ return
96
+ }
97
+ let http = new HttpResetClass()
98
+ let data = {
99
+ tablename: 't_files',
100
+ condition: `f_blobid = '${this.pblobid}' `
101
+ }
102
+ if (this.type){
103
+ data.condition += `and fusetype = '${this.type}'`
104
+ }
105
+ if (this.defname){
106
+ data.condition += `and defname = '${this.defname}'`
107
+ }
108
+ data.condition += ` order by f_uploaddate desc `
109
+ let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/apply_singleTable`, {data: data}, {
110
+ // let res = await http.load('POST', `rs/sql/apply_singleTable`, {data: data}, {
111
+ warnMsg: null,
112
+ resolveMsg: null
113
+ })
114
+
115
+ for (var i = 0; i < res.data.length; i++) {
116
+ console.log('-----------地址----------------')
117
+ console.log(`${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`)
118
+ res.data[i].f_downloadURL = `${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`
119
+ this.fileList.push(res.data[i])
120
+ }
121
+ },
122
+ async getFiles () {
123
+ console.log('----------------开始查询图片----------------')
124
+ this.fileList = []
125
+
126
+ let http = new HttpResetClass()
127
+
128
+ let data = {
129
+ tablename: 't_files',
130
+ condition: `f_blobid = '${this.blobid}'`
131
+ }
132
+ if (this.type){
133
+ data.condition += `and fusetype = '${this.type}'`
134
+ }
135
+ if (this.defname){
136
+ data.condition += `and defname = '${this.defname}'`
137
+ }
138
+ data.condition += ` order by f_uploaddate desc `
139
+ let res = await http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/sql/apply_singleTable`, {data: data}, {
140
+ // let res = await http.load('POST', `rs/sql/apply_singleTable`, {data: data}, {
141
+ warnMsg: null,
142
+ resolveMsg: null
143
+ })
144
+
145
+ for (var i = 0; i < res.data.length; i++) {
146
+ console.log('-----------地址----------------')
147
+ console.log(`${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`)
148
+ res.data[i].f_downloadURL = `${this.$androidUtil.getProxyUrl()}/${res.data[i].f_downloadpath.substring(res.data[i].f_downloadpath.lastIndexOf(":\\") + 2)}`
149
+ }
150
+
151
+ this.fileList = res.data
152
+ this.pgetFiles()
153
+ },
154
+ delfile (file, index) {
155
+ if (this.defname !== file.defname) {
156
+ this.$showMessage('当前环节和附件上传节点不一致,无法删除')
157
+ return
158
+ }
159
+ this.$resetdelete(`${this.$androidUtil.getProxyUrl()}/rs/entity/t_files`, {id: file.id}, {resolveMsg: '删除成功', rejectMsg: '删除失败'}).then((res) => {
160
+ this.$dispatch("delResid", file.id)
161
+ this.getFiles()
162
+ })
163
+ }
164
+ },
165
+ computed: {
166
+ typeList () {
167
+ if (this.typelabel) {
168
+ return this.$appdata.getParam(this.typelabel)
169
+ }
170
+ return this.$appdata.getParam('报建-使用类型')
171
+ },
172
+ defnames () {
173
+ return this.$appdata.getParam('报建节点')
174
+ }
175
+ },
176
+ events: {
177
+ }
178
+ }
179
+ </script>
180
+
181
+ <style lang="less">
182
+ .clears {
183
+ margin: 0;
184
+ font-size: 10px;
185
+ text-overflow: ellipsis;
186
+ white-space: nowrap;
187
+ }
188
+ .showData {
189
+ padding: 15px 10px 0px 10px;
190
+ box-sizing: border-box;
191
+ width: 50%;
192
+ font-family: "微软雅黑";
193
+ }
194
+ .fileType {
195
+ float: left;
196
+ .select-style {
197
+ background: #f8f8f8;
198
+ border: 0px;
199
+ }
200
+ input {
201
+ border-left: none;
202
+ width: 100%;
203
+ }
204
+ }
205
+ </style>
@@ -1,144 +1,156 @@
1
- <template>
2
- <div class="y-form" style="border-bottom: 1px dashed grey;">
3
- <div class="y-form-head">
4
- <span style="text-align: center;font-weight: bolder;">材料{{ index + 1 }}信息</span>
5
- <button
6
- style="float: right"
7
- class="button_delete button_spacing"
8
- @click.prevent="deleteUserFile(index)"
9
- >删除
10
- </button>
11
- </div>
12
- <div class="y-form-item">
13
- <label>材料名称</label>
14
- <v-select
15
- :width="'70%'"
16
- :value.sync="item.f_material_name"
17
- v-model="item.f_material_name"
18
- :options='newmaterialnameandcode'
19
- placeholder='请选择'
20
- close-on-select
21
- align='right'
22
- :value-single="true"
23
- @change="changeMaterialName"
24
- ></v-select>
25
- </div>
26
- <div class="y-form-item">
27
- <label>型号</label>
28
- <input class="form-control y-form-item-input"
29
- v-model="item.f_typenumber"
30
- readonly
31
- >
32
- <!-- <input type="text" class="form-control y-form-item-input" v-model="item.f_typenumber"
33
- :value.sync="item.f_typenumber" readonly>-->
34
- </div>
35
- <div class="y-form-item">
36
- <label>单价(元/{{ item.unit }})</label>
37
- <input type="number" class="form-control y-form-item-input"
38
- v-model="item.f_material_price"
39
- @change="material_number_chenge"
40
- >
41
- </div>
42
- <div class="y-form-item">
43
- <label>数量</label>
44
- <input type="number" class="form-control y-form-item-input" v-model="item.f_material_number" @change="material_number_chenge"
45
- :readOnly="item.f_process_id && item.f_state != '未收费' ? true : false">
46
- </div>
47
- <div class="y-form-item">
48
- <label>超支单价</label>
49
- <input type="number" class="form-control y-form-item-input" v-model="item.f_overlength_unitprice" @change="material_number_chenge"
50
- :readOnly="item.f_process_id && item.f_state != '未收费' ? true : false">
51
- </div>
52
- <div class="y-form-item">
53
- <label>超支数量</label>
54
- <input type="number" class="form-control y-form-item-input" v-model="item.f_overlength_number" @change="material_number_chenge"
55
- :readOnly="item.f_process_id && item.f_state != '未收费' ? true : false">
56
- </div>
57
- <div class="y-form-item">
58
- <label>优惠金额</label>
59
- <input type="number" class="form-control y-form-item-input" v-model="item.f_discounts_money_detail" @change="material_number_chenge"
60
- :readOnly="item.f_process_id && item.f_state != '未收费' ? true : false">
61
- </div>
62
- <div class="y-form-item">
63
- <label>材料实际耗材</label>
64
- <input type="number" class="form-control y-form-item-input" v-model="item.f_actual_materials_detail"
65
- :readOnly="item.f_process_id && item.f_state != '未收费' ? true : false">
66
- </div>
67
- </div>
68
-
69
- </template>
70
- <script>
71
- export default {
72
- props:["index",'item','materialnameandcode','typenumbers','newmaterialnameandcode'],
73
- data(){
74
- return {
75
- materialtypenumber:[]
76
- }
77
- },
78
- methods:{
79
- changeMaterialName(val){
80
- console.log(val)
81
- if(val){
82
- const res = this.materialnameandcode.filter((item)=>item.label === val)[0]
83
- console.log(res)
84
- if(res){
85
- this.item.f_typenumber = res['value']['materialNumber'].name
86
- this.item.unit = res['value']['materialNumber'].unit
87
- this.item.f_material_price = res['value']['materialNumber'].price
88
- this.item.f_typename = res['value']['typeName'].name
89
- this.item.material_type = res['value']['materialNumber'].material_type?res['value']['materialNumber'].material_type:'材料费'
90
- }
91
- }
92
- },
93
- material_number_chenge(){
94
- this.$emit('number_chenge')
95
- },
96
- deleteUserFile(i){
97
- this.$emit('delete_material',i)
98
- }
99
- },
100
- ready(){
101
- console.log(this.item)
102
- }
103
- }
104
- </script>
105
- <style lang="less">
106
- .y-form {
107
- display: flex;
108
- flex-flow: column;
109
- gap: 10px;
110
- padding: 10px 5px;
111
- .y-form-head {
112
- background-color: #e8f4ff;
113
- display: flex;
114
- padding: 10px 20px;
115
- align-items: center;
116
- justify-content: space-between;
117
- }
118
-
119
- .y-form-item {
120
- display: flex;
121
- gap: 10px;
122
- margin-top: 3px;
123
- label {
124
- width: 30%;
125
- margin-bottom: 0;
126
- display: flex;
127
- flex-direction: row-reverse;
128
- align-items: center;
129
- }
130
- .lab_sty{
131
- margin-bottom: 0;
132
- display: flex;
133
- flex-direction: row-reverse;
134
- align-items: center;
135
- }
136
-
137
- .y-form-item-input {
138
- width: 70%;
139
- }
140
- }
141
-
142
- }
143
-
144
- </style>
1
+ <template>
2
+ <div class="y-form" style="border-bottom: 1px dashed grey;">
3
+ <div class="y-form-head">
4
+ <span style="text-align: center;font-weight: bolder;">材料{{ index + 1 }}信息</span>
5
+ <button
6
+ style="float: right"
7
+ class="button_delete button_spacing"
8
+ @click.prevent="deleteUserFile(index)"
9
+ >删除
10
+ </button>
11
+ </div>
12
+ <div class="y-form-item">
13
+ <label>材料名称</label>
14
+ <v-select
15
+ :width="'70%'"
16
+ :value.sync="item.f_material_name"
17
+ v-model="item.f_material_name"
18
+ :options='newmaterialnameandcode'
19
+ placeholder='请选择'
20
+ close-on-select
21
+ :value-single="true"
22
+ @change="changeMaterialName"
23
+ ></v-select>
24
+ </div>
25
+ <div class="y-form-item">
26
+ <label>型号</label>
27
+ <v-select
28
+ :width="'70%'"
29
+ :value.sync="item.f_typenumber"
30
+ v-model="item.f_typenumber"
31
+ :options='materialnameandtype'
32
+ placeholder='请选择'
33
+ close-on-select
34
+ @change="changeType"
35
+ :value-single="true"
36
+ ></v-select>
37
+ </div>
38
+ <div class="y-form-item">
39
+ <label>单价(元/{{ item.unit }})</label>
40
+ <input type= umber" class="form-control y-form-item-input"
41
+ v-model="item.f_material_price"
42
+ @change="material_number_chenge"
43
+ >
44
+ </div>
45
+ <div class="y-form-item">
46
+ <label>数量</label>
47
+ <input type="number" class="form-control y-form-item-input" v-model="item.f_material_number" @change="material_number_chenge"
48
+ :readOnly="item.f_process_id && item.f_state != '未收费' ? true : false">
49
+ </div>
50
+ <div class="y-form-item">
51
+ <label>超支单价</label>
52
+ <input type="number" class="form-control y-form-item-input" v-model="item.f_overlength_unitprice" @change="material_number_chenge"
53
+ :readOnly="item.f_process_id && item.f_state != '未收费' ? true : false">
54
+ </div>
55
+ <div class="y-form-item">
56
+ <label>超支数量</label>
57
+ <input type="number" class="form-control y-form-item-input" v-model="item.f_overlength_number" @change="material_number_chenge"
58
+ :readOnly="item.f_process_id && item.f_state != '未收费' ? true : false">
59
+ </div>
60
+ <div class="y-form-item">
61
+ <label>优惠金额</label>
62
+ <input type="number" class="form-control y-form-item-input" v-model="item.f_discounts_money_detail" @change="material_number_chenge"
63
+ :readOnly="item.f_process_id && item.f_state != '未收费' ? true : false">
64
+ </div>
65
+ <div class="y-form-item">
66
+ <label>材料实际耗材</label>
67
+ <input type="number" class="form-control y-form-item-input" v-model="item.f_actual_materials_detail"
68
+ :readOnly="item.f_process_id && item.f_state != '未收费' ? true : false">
69
+ </div>
70
+ </div>
71
+ </template>
72
+ <script>
73
+ export default {
74
+ props:["index",'item','materialnameandcode','typenumbers','newmaterialnameandcode','newmaterialnameandtype'],
75
+ data(){
76
+ return {
77
+ materialtypenumber:[],
78
+ materialnameandtype:[],
79
+ }
80
+ },
81
+ methods:{
82
+ changeMaterialName(val){
83
+ this.materialnameandtype=[]
84
+ console.log(val)
85
+ if(val){
86
+ for (let i = 0; i < this.newmaterialnameandtype.length; i++){
87
+
88
+ if(this.newmaterialnameandtype[i].parent_id == val.id){
89
+ this.materialnameandtype.push(
90
+ {
91
+ label:this.newmaterialnameandtype[i].name,
92
+ value: this.newmaterialnameandtype[i]
93
+ }
94
+ )
95
+ }
96
+ }
97
+ }
98
+ },
99
+ changeType(val){
100
+ this.item.unit =val.unit
101
+ this.item.f_material_price =val.price
102
+ this.item.f_typename =val.name
103
+ this.item.material_type = this.item.f_material_name.name+val.name
104
+ },
105
+ material_number_chenge(){
106
+ this.$emit('number_chenge')
107
+ },
108
+ deleteUserFile(i){
109
+ this.$emit('delete_material',i)
110
+ }
111
+ },
112
+ ready(){
113
+ console.log(this.item)
114
+ }
115
+ }
116
+ </script>
117
+ <style lang="less">
118
+ .y-form {
119
+ display: flex;
120
+ flex-flow: column;
121
+ gap: 10px;
122
+ padding: 10px 5px;
123
+ .y-form-head {
124
+ background-color: #e8f4ff;
125
+ display: flex;
126
+ padding: 10px 20px;
127
+ align-items: center;
128
+ justify-content: space-between;
129
+ }
130
+
131
+ .y-form-item {
132
+ display: flex;
133
+ gap: 10px;
134
+ margin-top: 3px;
135
+ label {
136
+ width: 30%;
137
+ margin-bottom: 0;
138
+ display: flex;
139
+ flex-direction: row-reverse;
140
+ align-items: center;
141
+ }
142
+ .lab_sty{
143
+ margin-bottom: 0;
144
+ display: flex;
145
+ flex-direction: row-reverse;
146
+ align-items: center;
147
+ }
148
+
149
+ .y-form-item-input {
150
+ width: 70%;
151
+ }
152
+ }
153
+
154
+ }
155
+
156
+ </style>