imeik-bizui 0.3.4 → 0.3.6

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.
@@ -1,21 +1,54 @@
1
1
  <template>
2
2
  <div class="page-view">
3
- <el-button type="text" class="file-button">下载协议模版</el-button>
4
- <ImFieldFileUpload v-model="myValue" :attrs="attrs"></ImFieldFileUpload>
3
+ <el-button v-if="!isView" type="text" class="file-button">下载协议模版</el-button>
4
+ <ImFieldFileUpload v-model="myValue" :attrs="uploadAttrs"></ImFieldFileUpload>
5
5
  </div>
6
6
  </template>
7
7
 
8
8
  <script>
9
9
  export default {
10
10
  name: 'FieldAgreementUpload',
11
+ props: {
12
+ value: {
13
+ type: Array,
14
+ default() {
15
+ return []
16
+ }
17
+ },
18
+ attrs: {
19
+ type: Object,
20
+ default() {
21
+ return {}
22
+ }
23
+ }
24
+ },
11
25
  data() {
12
26
  return {
13
27
  myValue: [],
14
- attrs: {}
28
+ uploadAttrs: {
29
+ isView: this.attrs.isView
30
+ }
31
+ }
32
+ },
33
+ computed: {
34
+ isView() {
35
+ return !!this.attrs.isView
36
+ }
37
+ },
38
+ watch: {
39
+ value(val) {
40
+ this.myValue = val
41
+ },
42
+ myValue() {
43
+ this.onUpdate()
15
44
  }
16
45
  },
17
46
  mounted() {},
18
- methods: {}
47
+ methods: {
48
+ onUpdate() {
49
+ this.$emit('input', this.myValue)
50
+ }
51
+ }
19
52
  }
20
53
  </script>
21
54
  <style lang="scss" scoped>
@@ -92,7 +92,7 @@ const typeItems = {
92
92
  },
93
93
  {
94
94
  type: 'ImInput',
95
- prop: 'motexinxi',
95
+ prop: 'modelInjectInfo',
96
96
  label: '模特信息及注射部位',
97
97
  rules: [{ required: true, message: '请输入模特信息及注射部位' }],
98
98
  attrs: {
@@ -85,6 +85,8 @@ export default {
85
85
  value: {
86
86
  handler(val) {
87
87
  this.formConfig.props = val
88
+ console.log(this.formConfig.props, 'this.formConfig.props')
89
+ this.changeShowItems()
88
90
  },
89
91
  immediate: true
90
92
  },
@@ -102,22 +104,23 @@ export default {
102
104
  },
103
105
  'formConfig.props': {
104
106
  handler(val) {
105
- this.formatData(val)
106
107
  this.setPropsData()
107
108
  },
108
109
  deep: true
109
110
  },
110
111
  'formProps.belongCompany': {
111
112
  handler(val) {
112
- this.belongCompany = val
113
- this.setTypeDataOnChange()
113
+ if (!this.isView) {
114
+ this.belongCompany = val
115
+ this.setTypeDataOnChange()
116
+ }
114
117
  },
115
118
  immediate: true,
116
119
  deep: true
117
120
  }
118
121
  },
119
122
  mounted() {
120
- if (this.$bizui.bus) {
123
+ if (this.$bizui.bus && !this.isView) {
121
124
  this.$bizui.bus.$on('applySubmit', (val) => {
122
125
  this.handleValidate()
123
126
  })
@@ -174,9 +177,11 @@ export default {
174
177
  },
175
178
  onApplyTypechange() {
176
179
  // 清楚数据
177
- this.formConfig.props = {
178
- applyType: this.formConfig.props.applyType,
179
- applyTypeName: this.getTypeName()
180
+ if (!this.isView) {
181
+ this.formConfig.props = {
182
+ applyType: this.formConfig.props.applyType,
183
+ applyTypeName: this.getTypeName()
184
+ }
180
185
  }
181
186
  this.changeShowItems()
182
187
  this.setTypeDataOnChange()
@@ -195,41 +200,40 @@ export default {
195
200
  this.formConfig.props.erpBillName = res.data.erpBillName
196
201
  this.formConfig.props.erpBillCode = res.data.erpBillCode
197
202
  } else {
198
- this.$message.error(res.msg)
203
+ // this.$message.error(res.msg)
199
204
  }
200
205
  })
201
206
  },
202
207
  // 设置上市后临床研究项目编号
203
208
  setProjectCode() {
209
+ const index = this.getFormItemIndex('projectCode')
210
+ if (!index) return
204
211
  if (this.belongCompany === '201') {
205
212
  this.formConfig.props.projectCode = 'Q202003-01_CH'
206
- const index = this.getFormItemIndex('projectCode')
207
213
  this.$set(this.formConfig.formItems[index].attrs, 'disabled', true)
208
214
  return
215
+ } else {
216
+ this.formConfig.props.projectCode = undefined
217
+ this.$set(this.formConfig.formItems[index].attrs, 'disabled', false)
209
218
  }
210
- this.formConfig.props.projectCode = undefined
211
219
  getTagManageList({ tagModel: 'APPLY', tagName: '非销售申请项目编号' }).then((res) => {
212
220
  if (res.code === 200) {
213
221
  Axios.get(res.data[0].tagValueUrl).then((subRes) => {
214
222
  if (subRes.data.code === 200) {
215
- const index = this.getFormItemIndex('projectCode')
216
- if (index) {
217
- const fiterData = []
218
- subRes.data.data.forEach(item => {
219
- if (this.belongCompany === item.dicExt) {
220
- fiterData.push(item)
221
- }
222
- })
223
- const options = fiterData
224
- const newData = JSON.parse(JSON.stringify(this.formConfig.formItems[index]))
225
- newData.attrs.options = options
226
- this.$set(this.formConfig.formItems, index, newData)
227
- }
223
+ const fiterData = []
224
+ subRes.data.data.forEach((item) => {
225
+ if (this.belongCompany === item.dicExt) {
226
+ fiterData.push(item)
227
+ }
228
+ })
229
+ const options = fiterData
230
+ const newData = JSON.parse(JSON.stringify(this.formConfig.formItems[index]))
231
+ newData.attrs.options = options
232
+ this.$set(this.formConfig.formItems, index, newData)
228
233
  }
229
234
  })
230
- // this.formConfig.props.projectCode = res.data.projectNo
231
235
  } else {
232
- this.$message.error(res.msg)
236
+ // this.$message.error(res.msg)
233
237
  }
234
238
  })
235
239
  },
@@ -113,11 +113,11 @@ export default {
113
113
  'min-width': '160'
114
114
  }
115
115
  }
116
- ],
117
- pickerOptionsHandle: {
118
- disabledDate(time) {
119
- return time.getTime() < Date.now() - 8.64e7
120
- }
116
+ ]
117
+ },
118
+ pickerOptionsHandle: {
119
+ disabledDate(time) {
120
+ return time.getTime() < Date.now() - 8.64e7
121
121
  }
122
122
  }
123
123
  }
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div>
3
3
  <div v-for="(item, index) in tableData" :key="JSON.stringify(item) + index">
4
- <div class="text-left ml-2 pb-2 mb-2 mt-4 flex">
4
+ <div class="text-left pb-2 mb-2 mt-4 flex">
5
5
  <div class="flex">
6
6
  <p class="title">分批发货 {{ index + 1 }}</p>
7
7
  </div>
@@ -27,14 +27,13 @@ export default {
27
27
  }
28
28
  },
29
29
  isView: {
30
- type: Boolean,
30
+ type: [Boolean, String],
31
31
  default: false
32
32
  }
33
33
  },
34
34
  data() {
35
35
  return {}
36
36
  },
37
- mounted() {},
38
37
  methods: {
39
38
  removeSubOrder(data, index) {
40
39
  this.$emit('removeSubOrder', data, index)
@@ -13,7 +13,7 @@
13
13
  </div>
14
14
  </div>
15
15
  </div>
16
- <OrderList v-if="showOrderList" :table-data="selectOrderList" :is-view="false" @removeSubOrder="removeSubOrder"></OrderList>
16
+ <OrderList v-if="showOrderList" :table-data="selectOrderList" :is-view="isView" @removeSubOrder="removeSubOrder"></OrderList>
17
17
  <BatchDialog :show.sync="showDialog" :selected-data="selectOrderList" @onConfirm="onConfirm"></BatchDialog>
18
18
  </div>
19
19
  </template>
@@ -55,7 +55,7 @@ export default {
55
55
  },
56
56
  computed: {
57
57
  isView() {
58
- return this.attrs.isView
58
+ return !!this.attrs.isView
59
59
  },
60
60
  showButotn() {
61
61
  const hasMaterial = this.formProps.applicationApplyMaterial?.length
@@ -88,6 +88,26 @@ export default {
88
88
  this.selectOrderList = val.subOrderMaterialsPlans || []
89
89
  },
90
90
  immediate: true
91
+ },
92
+ 'formProps.belongCompany': {
93
+ handler(val, old) {
94
+ if (!this.isView && val !== old) {
95
+ this.deliveryTimeEffectiveness = '1'
96
+ this.selectOrderList = []
97
+ }
98
+ },
99
+ immediate: true,
100
+ deep: true
101
+ },
102
+ 'formProps.applicationApplyCustomer': {
103
+ handler(val, old) {
104
+ if (!this.isView && val !== old) {
105
+ this.deliveryTimeEffectiveness = '1'
106
+ this.selectOrderList = []
107
+ }
108
+ },
109
+ immediate: true,
110
+ deep: true
91
111
  }
92
112
  },
93
113
  mounted() {},
@@ -129,5 +149,6 @@ export default {
129
149
  .res-view {
130
150
  font-size: 14px;
131
151
  margin-top: 20px;
152
+ margin-bottom: 40px;
132
153
  }
133
154
  </style>
@@ -1,6 +1,6 @@
1
1
  <template>
2
2
  <div class="page-view">
3
- <FieldInput v-model="descript" :attrs="{ ...myAttrs, isView }"></FieldInput>
3
+ <FieldInput v-model="descript" :attrs="{ ...myAttrs, isView }" @input="onInput"></FieldInput>
4
4
  </div>
5
5
  </template>
6
6
 
@@ -30,7 +30,7 @@ export default {
30
30
  myAttrs: {
31
31
  type: 'textarea',
32
32
  rows: 4,
33
- bottomText: ''
33
+ placeholder: ''
34
34
  }
35
35
  }
36
36
  },
@@ -42,7 +42,7 @@ export default {
42
42
  watch: {
43
43
  'formProps.applyTypeInfo.applyType': {
44
44
  handler(val) {
45
- val && this.setBottomText()
45
+ val && this.setBottomText(val)
46
46
  },
47
47
  immediate: true,
48
48
  deep: true
@@ -54,24 +54,25 @@ export default {
54
54
  immediate: true
55
55
  }
56
56
  },
57
- mounted() {
58
- console.log(this.formProps, 'formProps111222')
59
- },
60
57
  methods: {
61
- setBottomText() {
62
- const applyType = this.formProps?.applyTypeInfo?.applyType
63
- if (!applyType) {
64
- return
65
- }
58
+ onInput() {
59
+ this.$emit('input', this.descript)
60
+ },
61
+ setBottomText(val) {
66
62
  const bottomTextMap = {
67
- 1: '①术前照片要求与此申请一起提交,术后照片及反馈资料要求注射后一周内发给商务助理;②提供医生签字或者机构盖章的上市后临床研究协议的电子版照片;③纸质版协议寄回给商务助理。',
68
- 2: '①提供医生签字或者机构盖章的合作意向书/技术服务合同,需总经理签字;②若需要机构伦理委员会审批提供审批结果;③研究周期及预期成果需注明资料反馈时间。',
69
- 3: '①提供机构盖章的合作协议或技术服务合同;②若需要机构伦理委员会审批提供审批结果。',
70
- 4: '①提供医生签字或者机构盖章的合作意向书或技术服务合同;②若需要机构伦理委员会审批提供审批结果。'
63
+ '1897633650850717699': '①术前照片要求与此申请一起提交,术后照片及反馈资料要求注射后一周内发给商务助理;②提供医生签字或者机构盖章的上市后临床研究协议的电子版照片;③纸质版协议寄回给商务助理。',
64
+ '1896397579093626883': '①提供医生签字或者机构盖章的合作意向书/技术服务合同,需总经理签字;②若需要机构伦理委员会审批提供审批结果;③研究周期及预期成果需注明资料反馈时间。',
65
+ '1896397579114598403': '①提供机构盖章的合作协议或技术服务合同;②若需要机构伦理委员会审批提供审批结果。',
66
+ '1896397579127181314': '①提供医生签字或者机构盖章的合作意向书或技术服务合同;②若需要机构伦理委员会审批提供审批结果。'
71
67
  }
72
- this.myAttrs.bottomText = bottomTextMap[applyType] || ''
68
+ this.myAttrs.placeholder = bottomTextMap[val] || '请输入'
73
69
  }
74
70
  }
75
71
  }
76
72
  </script>
77
- <style lang="scss" scoped></style>
73
+ <style lang="scss" scoped>
74
+ .bottomText {
75
+ font-size: 12px;
76
+ margin-bottom: 6px;
77
+ }
78
+ </style>
@@ -123,8 +123,8 @@ export default {
123
123
  page: 1,
124
124
  limit: 10,
125
125
  belongCompany: this.formProps.belongCompany,
126
- rcoiCode: this.ruleInfo.rcoiCode,
127
- rcoiNumber: this.ruleInfo.rcoiNumber
126
+ rcoiCode: this.ruleInfo.rcoiCode || '12',
127
+ rcoiNumber: this.ruleInfo.rcoiNumber || '222'
128
128
  }
129
129
  this.loading = true
130
130
  getCustomerList(params)
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <div class="item-view">
3
3
  <div>
4
- <el-tag>股份</el-tag>
4
+ <el-tag>{{ customData.invoiceCompanyName }}</el-tag>
5
5
  <el-tag effect="plain" style="margin-left: 12px;">特殊</el-tag>
6
6
  </div>
7
7
  <div class="name">
@@ -72,8 +72,11 @@ export default {
72
72
  }
73
73
  },
74
74
  'formProps.belongCompany': {
75
- handler(val) {
76
- this.selectedItem = []
75
+ handler(val, old) {
76
+ if (!this.isView && val !== old) {
77
+ this.selectedItem = {}
78
+ this.myValue = ''
79
+ }
77
80
  },
78
81
  immediate: true,
79
82
  deep: true
@@ -82,6 +85,7 @@ export default {
82
85
  methods: {
83
86
  setMyValue() {
84
87
  try {
88
+ console.log(this.value, 'this.valuethis.valuethis.valuethis.value');
85
89
  this.myValue = this.value.customerUniqueCode
86
90
  this.selectedItem = JSON.parse(JSON.stringify(this.value))
87
91
  } catch (error) {
@@ -66,7 +66,8 @@ export default {
66
66
  },
67
67
  pasteInfo: '', // 粘贴收货信息
68
68
  showPasteInfo: false, // 是否显示粘贴收货信息
69
- tagCustomAddressInfo: undefined // 标签中心获取地址信息
69
+ tagCustomAddressInfo: undefined, // 标签中心获取地址信息
70
+ receivingOptions: []
70
71
  }
71
72
  },
72
73
  computed: {
@@ -76,11 +77,11 @@ export default {
76
77
  },
77
78
  // 是不是械类产品,是什么械类
78
79
  isEquipment() {
79
- return false
80
+ return true
80
81
  },
81
82
  // 是不是股份的客户
82
83
  isGufen() {
83
- return true
84
+ return this.formProps.belongCompany === '201'
84
85
  },
85
86
  // 能不能修改联系人联系电话
86
87
  canEditReceivingInfo() {
@@ -125,7 +126,7 @@ export default {
125
126
  rules: [{ required: true, message: '请选择收货人' }],
126
127
  attrs: {
127
128
  options: [
128
- { label: '客户档案', value: '1' },
129
+ { label: '客户档案', value: '1', disabled: !this.hasCustom },
129
130
  { label: '本人EHR', value: '2' },
130
131
  { label: '手动输入', value: '3' }
131
132
  ],
@@ -143,8 +144,8 @@ export default {
143
144
  rules: [{ required: true, message: '请选择收货人' }],
144
145
  attrs: {
145
146
  options: [
146
- { label: '三类械类收货地址', value: '1', disabled: this.isEquipment },
147
- { label: '二类械收货地址', value: '2' },
147
+ { label: '-', value: '1', disabled: this.isEquipment },
148
+ { label: '二类械收货地址', value: '2', disabled: true },
148
149
  { label: '其他收货地址', value: '3', disabled: this.isEquipment }
149
150
  ],
150
151
  class: 'w-full'
@@ -157,10 +158,7 @@ export default {
157
158
  hidden: this.hiddenAddressTypeAndReceiving,
158
159
  rules: [{ required: true, message: '请选择收货人' }],
159
160
  attrs: {
160
- options: [
161
- { label: '默认收货人', value: '1' },
162
- { label: '其他收货人', value: '2', disabled: !this.isGufen }
163
- ],
161
+ options: this.receivingOptions,
164
162
  class: 'w-full'
165
163
  },
166
164
  listeners: {
@@ -259,33 +257,49 @@ export default {
259
257
  // 地址来源发生变化
260
258
  onAddressSourceChange(val) {
261
259
  if (val === '1') {
262
- getReceivingContact({ accountCode: this.hasCustom }).then((res) => {
263
- if (res.code === 200) {
264
- const index = this.getDataIndexByProp('materialReceivingSource')
265
- this.formConfig.formItems[index].attrs.options = res.data.map(item => {
266
- return {
267
- label: item.materialReceivingContact,
268
- value: item.materialReceivingContactNumber
269
- }
270
- })
271
- }
272
- })
260
+ this.getReceivingOptions()
273
261
  // 从标签中心获取地址
274
262
  } else {
275
263
  this.formConfig.props.materialReceivingAddressType = undefined
276
264
  this.formConfig.props.materialReceivingSource = undefined
277
265
  }
278
266
  if (val === '2') {
279
- getEmployeeAddress().then(res => {
267
+ getEmployeeAddress().then((res) => {
280
268
  })
281
269
  // 从ehr获取地址
282
270
  }
283
271
  this.showPasteInfo = val === '3'
284
272
  },
273
+ // 获取收货人列表
274
+ getReceivingOptions() {
275
+ if (this.formConfig.props.materialReceivingAddressSource === '1') {
276
+ getReceivingContact({ accountCode: this.hasCustom }).then((res) => {
277
+ if (res.code === 200) {
278
+ // 是股份 且是三类械产品 就是默认和其他两个选择
279
+ if (this.isGufen && this.isEquipment) {
280
+ this.receivingOptions = [
281
+ { label: '默认收货人', value: '1' },
282
+ { label: '其他收货人', value: '2' }
283
+ ]
284
+ this.formConfig.props.materialReceivingSource = '1'
285
+ this.formConfig.props.materialReceivingContact = res.data[0].materialReceivingContact
286
+ this.formConfig.props.materialReceivingContactNumber = res.data[0].materialReceivingContactNumber
287
+ } else {
288
+ this.receivingOptions = res.data.map((res) => {
289
+ return {
290
+ value: res.materialReceivingContactNumber,
291
+ label: res.materialReceivingContact
292
+ }
293
+ })
294
+ }
295
+ }
296
+ })
297
+ }
298
+ },
285
299
  // 收货人发生变化
286
300
  onMaterialReceivingSourceChange(val) {
287
- this.formConfig.props.materialReceivingContact = '郝亚杰'
288
- this.formConfig.props.materialReceivingContactNumber = '13121889953'
301
+ // this.formConfig.props.materialReceivingContact = '郝亚杰'
302
+ // this.formConfig.props.materialReceivingContactNumber = '13121889953'
289
303
  },
290
304
  // 获取item的下标
291
305
  getDataIndexByProp(prop) {
@@ -308,11 +308,11 @@ export default {
308
308
  } = res.data[0] || {}
309
309
  this.tableConfig.data[index].materialReceivingAddress = materialReceivingAddress
310
310
  this.tableConfig.data[index].materialReceivingAddressType = materialReceivingAddressType
311
- this.tableConfig.data[index].materialReceivingArea = materialReceivingArea
312
- this.tableConfig.data[index].materialReceivingCity = materialReceivingCity
311
+ this.tableConfig.data[index].materialReceivingArea = '朝阳区'
312
+ this.tableConfig.data[index].materialReceivingCity = '北京市'
313
313
  this.tableConfig.data[index].materialReceivingContact = materialReceivingContact
314
314
  this.tableConfig.data[index].materialReceivingContactNumber = materialReceivingContactNumber
315
- this.tableConfig.data[index].materialReceivingProvince = materialReceivingProvince
315
+ this.tableConfig.data[index].materialReceivingProvince = '北京市'
316
316
  this.tableConfig.data[index].hasAddress = true
317
317
  }
318
318
  })
@@ -28,7 +28,9 @@
28
28
  <ImPagination ref="ImPagination" :page-size.sync="pageSize" :current-page.sync="currentPage" :total="total" @change="getList"></ImPagination>
29
29
  <template slot="footer">
30
30
  <div class="footer-view pt-6 mb-2 pl-2 pr-2">
31
- <p class="selected-number">已选 <span>{{ selectItems.length }}</span> 项内容</p>
31
+ <p class="selected-number">
32
+ 已选 <span>{{ selectItems.length }}</span> 项内容
33
+ </p>
32
34
  <div>
33
35
  <el-Button @click="onCancel">取消</el-Button>
34
36
  <el-Button type="primary" @click="confirmInfo">确定</el-Button>
@@ -191,7 +193,7 @@ export default {
191
193
  const data = {
192
194
  accountCode: this.formProps.applicationApplyCustomer?.accountCode
193
195
  }
194
- getMaterialList(data).then(res => {
196
+ getMaterialList(data).then((res) => {
195
197
  if (res.code === 200) {
196
198
  this.tableConfig.data = res.data
197
199
  // this.total = res.data.total
@@ -255,7 +257,7 @@ export default {
255
257
  line-height: 22px;
256
258
  span {
257
259
  font-weight: 600;
258
- color: #3285F6;
260
+ color: #3285f6;
259
261
  }
260
262
  }
261
263
  </style>
@@ -70,15 +70,19 @@ export default {
70
70
  immediate: true
71
71
  },
72
72
  'formProps.belongCompany': {
73
- handler(val) {
74
- this.tableData = []
73
+ handler(val, old) {
74
+ if (!this.isView && val !== old) {
75
+ this.tableData = []
76
+ }
75
77
  },
76
78
  immediate: true,
77
79
  deep: true
78
80
  },
79
81
  'formProps.applicationApplyCustomer': {
80
- handler(val) {
81
- this.tableData = []
82
+ handler(val, old) {
83
+ if (!this.isView && val !== old) {
84
+ this.tableData = []
85
+ }
82
86
  },
83
87
  immediate: true,
84
88
  deep: true
@@ -130,6 +134,7 @@ export default {
130
134
  },
131
135
  addProduct(data) {
132
136
  this.tableData = [...this.tableData, ...data]
137
+ console.log(this.tableData, '假如产品')
133
138
  this.onUpdate()
134
139
  },
135
140
  onRemoveItem(record, index) {