Commit cd137a71c62b11311393ff64308268da91141fd3

Authored by 严涛
2 parents f8cdb3de ee0a8fd2

Merge branch 'cjerp-contract' of http://gitlab.qgutech.com/zhuyuanliang/erp-mobile into test_cjerp

@@ -75,3 +75,14 @@ export function checkApi(params) { @@ -75,3 +75,14 @@ export function checkApi(params) {
75 }, 75 },
76 }) 76 })
77 } 77 }
  78 +
  79 +
  80 +// 上传质保书
  81 +export function uploadWarrantyCertificate(params) {
  82 + return request({
  83 + url: `${baseUrl}/uploadWarrantyCertificate`,
  84 + method: 'put',
  85 + data: params,
  86 + contentType: ContentTypeEnum.JSON
  87 + })
  88 +}
@@ -102,6 +102,11 @@ @@ -102,6 +102,11 @@
102 placeholder="请输入长度公差(单项-)" /> 102 placeholder="请输入长度公差(单项-)" />
103 </template> 103 </template>
104 </uni-list-item> 104 </uni-list-item>
  105 + <uni-list-item title="物料编码">
  106 + <template v-slot:footer>
  107 + <uni-easyinput v-model="item.materialCode" :inputBorder="false" placeholder="请输入物料编码" />
  108 + </template>
  109 + </uni-list-item>
105 <uni-list-item title="状态"> 110 <uni-list-item title="状态">
106 <template v-slot:footer> 111 <template v-slot:footer>
107 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" /> 112 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" />
@@ -179,6 +184,7 @@ @@ -179,6 +184,7 @@
179 </view> 184 </view>
180 </view> 185 </view>
181 </view> 186 </view>
  187 + <view class="row"><text class="label">物料编码</text><text class="value">{{ item.materialCode }}</text></view>
182 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view> 188 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view>
183 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view> 189 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view>
184 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice) 190 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice)
@@ -246,7 +252,7 @@ export default { @@ -246,7 +252,7 @@ export default {
246 }, 252 },
247 methods: { 253 methods: {
248 defaultItem() { 254 defaultItem() {
249 - return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', status: '', quantity: '', unitPrice: '', amountExcludingTax: 0, totalAmount: 0, deliveryDate: '' } 255 + return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', materialCode: '', status: '', quantity: '', unitPrice: '', amountExcludingTax: 0, totalAmount: 0, deliveryDate: '' }
250 }, 256 },
251 onImmediateChange(idx) { 257 onImmediateChange(idx) {
252 this.$nextTick(() => this.recalculate(idx)) 258 this.$nextTick(() => this.recalculate(idx))
@@ -4,7 +4,8 @@ module.exports = { @@ -4,7 +4,8 @@ module.exports = {
4 themeColor: '#3d48a3', 4 themeColor: '#3d48a3',
5 5
6 // baseUrl: 'http://ft.wecando21cn.com/api', 6 // baseUrl: 'http://ft.wecando21cn.com/api',
7 - baseUrl: 'http://erp.qgutech.com/api', 7 + baseUrl: 'http://gjtd.ahcjxc.com:81/api',
  8 + // baseUrl: 'http://erp.qgutech.com//api',
8 // baseUrl: 'http://127.0.0.1:8085', 9 // baseUrl: 'http://127.0.0.1:8085',
9 // 应用信息 10 // 应用信息
10 appInfo: { 11 appInfo: {
@@ -31,10 +32,10 @@ module.exports = { @@ -31,10 +32,10 @@ module.exports = {
31 } 32 }
32 ] 33 ]
33 }, 34 },
34 - 35 +
35 loginInfo: { 36 loginInfo: {
36 userName: "", 37 userName: "",
37 password: "", 38 password: "",
38 - 39 +
39 } 40 }
40 } 41 }
@@ -53,9 +53,9 @@ @@ -53,9 +53,9 @@
53 <uni-easyinput v-model="form.priceListNo" placeholder="请输入价格表编号" :inputBorder="false" /> 53 <uni-easyinput v-model="form.priceListNo" placeholder="请输入价格表编号" :inputBorder="false" />
54 </template> 54 </template>
55 </uni-list-item> 55 </uni-list-item>
56 - <uni-list-item title="开票情况"> 56 + <uni-list-item title="开票要求">
57 <template v-slot:footer> 57 <template v-slot:footer>
58 - <uni-easyinput v-model="form.invoicingStatus" placeholder="请输入开票情况" :inputBorder="false" /> 58 + <uni-easyinput v-model="form.invoicingStatus" placeholder="请输入开票要求" :inputBorder="false" />
59 </template> 59 </template>
60 </uni-list-item> 60 </uni-list-item>
61 <uni-list-item class="amount-item"> 61 <uni-list-item class="amount-item">
@@ -216,7 +216,7 @@ export default { @@ -216,7 +216,7 @@ export default {
216 const m = res.data || {} 216 const m = res.data || {}
217 const next = { ...this.form, ...m } 217 const next = { ...this.form, ...m }
218 next.id = m.id || m.code || id 218 next.id = m.id || m.code || id
219 - next.purchaseOrderLineList = Array.isArray(m.purchaseOrderLineList) ? m.purchaseOrderLineList.map(x => ({ 219 + next.purchaseOrderLineList = Array.isArray(m.purchaseOrderLineList) ? m.purchaseOrderLineList.map(x => ({
220 ...x, 220 ...x,
221 assessmentExceedsAgreement: Number(x.assessmentExceedsAgreement || 0).toFixed(2) || 0.00, 221 assessmentExceedsAgreement: Number(x.assessmentExceedsAgreement || 0).toFixed(2) || 0.00,
222 })) : [] 222 })) : []
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@
27 27
28 <view class="section"> 28 <view class="section">
29 <view class="row"><text class="label">价格表编号</text><text class="value">{{ form.priceListNo }}</text></view> 29 <view class="row"><text class="label">价格表编号</text><text class="value">{{ form.priceListNo }}</text></view>
30 - <view class="row"><text class="label">开票情况</text><text class="value">{{ form.invoicingStatus }}</text></view> 30 + <view class="row"><text class="label">开票要求</text><text class="value">{{ form.invoicingStatus }}</text></view>
31 <view class="row"><text class="label">运费</text><text class="value">{{ form.shippingCost }}</text></view> 31 <view class="row"><text class="label">运费</text><text class="value">{{ form.shippingCost }}</text></view>
32 <view class="row"><text class="label">执行标准</text><text class="value">{{ getDicName('APPLICABLE_STANDARD', 32 <view class="row"><text class="label">执行标准</text><text class="value">{{ getDicName('APPLICABLE_STANDARD',
33 form.executionStandard, dicOptions.APPLICABLE_STANDARD) }}</text></view> 33 form.executionStandard, dicOptions.APPLICABLE_STANDARD) }}</text></view>
@@ -52,9 +52,9 @@ @@ -52,9 +52,9 @@
52 <uni-easyinput v-model="form.priceListNo" placeholder="请输入价格表编号" :inputBorder="false" /> 52 <uni-easyinput v-model="form.priceListNo" placeholder="请输入价格表编号" :inputBorder="false" />
53 </template> 53 </template>
54 </uni-list-item> 54 </uni-list-item>
55 - <uni-list-item title="开票情况"> 55 + <uni-list-item title="开票要求">
56 <template v-slot:footer> 56 <template v-slot:footer>
57 - <uni-easyinput v-model="form.invoicingStatus" placeholder="请输入开票情况" :inputBorder="false" /> 57 + <uni-easyinput v-model="form.invoicingStatus" placeholder="请输入开票要求" :inputBorder="false" />
58 </template> 58 </template>
59 </uni-list-item> 59 </uni-list-item>
60 <uni-list-item class="amount-item"> 60 <uni-list-item class="amount-item">
@@ -212,7 +212,7 @@ export default { @@ -212,7 +212,7 @@ export default {
212 const next = { ...this.form, ...m } 212 const next = { ...this.form, ...m }
213 next.id = m.id || m.code || id; 213 next.id = m.id || m.code || id;
214 next.purchaseOrderId = m.orderId || ''; 214 next.purchaseOrderId = m.orderId || '';
215 - next.purchaseOrderLineList = Array.isArray(m.afterChangeSpecList) ? m.afterChangeSpecList.map(x => ({ 215 + next.purchaseOrderLineList = Array.isArray(m.afterChangeSpecList) ? m.afterChangeSpecList.map(x => ({
216 ...x, 216 ...x,
217 assessmentExceedsAgreement: Number(x.assessmentExceedsAgreement || 0).toFixed(2) || 0.00, 217 assessmentExceedsAgreement: Number(x.assessmentExceedsAgreement || 0).toFixed(2) || 0.00,
218 })) : [] 218 })) : []
@@ -27,7 +27,7 @@ @@ -27,7 +27,7 @@
27 27
28 <view class="section"> 28 <view class="section">
29 <view class="row"><text class="label">价格表编号</text><text class="value">{{ form.priceListNo }}</text></view> 29 <view class="row"><text class="label">价格表编号</text><text class="value">{{ form.priceListNo }}</text></view>
30 - <view class="row"><text class="label">开票情况</text><text class="value">{{ form.invoicingStatus }}</text></view> 30 + <view class="row"><text class="label">开票要求</text><text class="value">{{ form.invoicingStatus }}</text></view>
31 <view class="row"><text class="label">运费</text><text class="value">{{ form.shippingCost }}</text></view> 31 <view class="row"><text class="label">运费</text><text class="value">{{ form.shippingCost }}</text></view>
32 <view class="row"><text class="label">执行标准</text><text class="value">{{ getDicName('APPLICABLE_STANDARD', 32 <view class="row"><text class="label">执行标准</text><text class="value">{{ getDicName('APPLICABLE_STANDARD',
33 form.executionStandard, dicOptions.APPLICABLE_STANDARD) }}</text></view> 33 form.executionStandard, dicOptions.APPLICABLE_STANDARD) }}</text></view>
@@ -102,6 +102,11 @@ @@ -102,6 +102,11 @@
102 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" /> 102 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" />
103 </template> 103 </template>
104 </uni-list-item> 104 </uni-list-item>
  105 + <uni-list-item title="物料编码">
  106 + <template v-slot:footer>
  107 + <uni-easyinput v-model="item.materialCode" :inputBorder="false" placeholder="请输入物料编码" />
  108 + </template>
  109 + </uni-list-item>
105 <uni-list-item title="状态"> 110 <uni-list-item title="状态">
106 <template v-slot:footer> 111 <template v-slot:footer>
107 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" /> 112 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" />
@@ -190,6 +195,7 @@ @@ -190,6 +195,7 @@
190 </view> 195 </view>
191 </view> 196 </view>
192 </view> 197 </view>
  198 + <view class="row"><text class="label">物料编码</text><text class="value">{{ item.materialCode }}</text></view>
193 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view> 199 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view>
194 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view> 200 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view>
195 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice) 201 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice)
@@ -271,7 +277,7 @@ export default { @@ -271,7 +277,7 @@ export default {
271 }, 277 },
272 methods: { 278 methods: {
273 defaultItem() { 279 defaultItem() {
274 - return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', status: '', quantity: '', unitPrice: '', processingFee: undefined, totalAmount: 0, deliveryDate: '', sampleOrder: false } 280 + return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', materialCode: '', status: '', quantity: '', unitPrice: '', processingFee: undefined, totalAmount: 0, deliveryDate: '', sampleOrder: false }
275 }, 281 },
276 onNonNegativeInput(idx, field) { 282 onNonNegativeInput(idx, field) {
277 const it = this.items[idx] 283 const it = this.items[idx]
@@ -74,6 +74,11 @@ @@ -74,6 +74,11 @@
74 </view> 74 </view>
75 </template> 75 </template>
76 </uni-list-item> 76 </uni-list-item>
  77 + <uni-list-item title="物料编码">
  78 + <template v-slot:footer>
  79 + <uni-easyinput v-model="item.materialCode" placeholder="请输入物料编码" :clearable="false" disabled />
  80 + </template>
  81 + </uni-list-item>
77 <uni-list-item title="状态"> 82 <uni-list-item title="状态">
78 <template v-slot:footer> 83 <template v-slot:footer>
79 <uni-easyinput v-model="item.status" placeholder="请输入状态" :clearable="false" disabled /> 84 <uni-easyinput v-model="item.status" placeholder="请输入状态" :clearable="false" disabled />
@@ -248,6 +253,7 @@ export default { @@ -248,6 +253,7 @@ export default {
248 length: v.length || '', 253 length: v.length || '',
249 lengthTolPos: v.lengthTolPos || '', 254 lengthTolPos: v.lengthTolPos || '',
250 lengthTolNeg: v.lengthTolNeg || '', 255 lengthTolNeg: v.lengthTolNeg || '',
  256 + materialCode: v.materialCode || '',
251 status: v.status || '', 257 status: v.status || '',
252 quantity: v.productQuantity || v.quantity || '', 258 quantity: v.productQuantity || v.quantity || '',
253 unitPrice: v.unitPrice || '', 259 unitPrice: v.unitPrice || '',
@@ -104,6 +104,11 @@ @@ -104,6 +104,11 @@
104 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" /> 104 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" />
105 </template> 105 </template>
106 </uni-list-item> 106 </uni-list-item>
  107 + <uni-list-item title="物料编码">
  108 + <template v-slot:footer>
  109 + <uni-easyinput v-model="item.materialCode" :inputBorder="false" placeholder="请输入物料编码" />
  110 + </template>
  111 + </uni-list-item>
107 <uni-list-item title="状态"> 112 <uni-list-item title="状态">
108 <template v-slot:footer> 113 <template v-slot:footer>
109 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" /> 114 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" />
@@ -192,6 +197,7 @@ @@ -192,6 +197,7 @@
192 </view> 197 </view>
193 </view> 198 </view>
194 </view> 199 </view>
  200 + <view class="row"><text class="label">物料编码</text><text class="value">{{ item.materialCode }}</text></view>
195 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view> 201 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view>
196 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view> 202 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view>
197 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice) 203 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice)
@@ -273,7 +279,7 @@ export default { @@ -273,7 +279,7 @@ export default {
273 }, 279 },
274 methods: { 280 methods: {
275 defaultItem() { 281 defaultItem() {
276 - return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', status: '', quantity: '', unitPrice: '', processingFee: undefined, totalAmount: 0, deliveryDate: '', sampleOrder: false } 282 + return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', materialCode: '', status: '', quantity: '', unitPrice: '', processingFee: undefined, totalAmount: 0, deliveryDate: '', sampleOrder: false }
277 }, 283 },
278 onNonNegativeInput(idx, field) { 284 onNonNegativeInput(idx, field) {
279 const it = this.items[idx] 285 const it = this.items[idx]
@@ -73,6 +73,11 @@ @@ -73,6 +73,11 @@
73 </view> 73 </view>
74 </template> 74 </template>
75 </uni-list-item> 75 </uni-list-item>
  76 + <uni-list-item title="物料编码">
  77 + <template v-slot:footer>
  78 + <uni-easyinput v-model="item.materialCode" placeholder="请输入物料编码" :clearable="false" disabled />
  79 + </template>
  80 + </uni-list-item>
76 <uni-list-item title="状态"> 81 <uni-list-item title="状态">
77 <template v-slot:footer> 82 <template v-slot:footer>
78 <uni-easyinput v-model="item.status" placeholder="请输入状态" :clearable="false" disabled /> 83 <uni-easyinput v-model="item.status" placeholder="请输入状态" :clearable="false" disabled />
@@ -246,6 +251,7 @@ export default { @@ -246,6 +251,7 @@ export default {
246 length: v.length || '', 251 length: v.length || '',
247 lengthTolPos: v.lengthTolPos || '', 252 lengthTolPos: v.lengthTolPos || '',
248 lengthTolNeg: v.lengthTolNeg || '', 253 lengthTolNeg: v.lengthTolNeg || '',
  254 + materialCode: v.materialCode || '',
249 status: v.status || '', 255 status: v.status || '',
250 quantity: v.productQuantity || v.quantity || '', 256 quantity: v.productQuantity || v.quantity || '',
251 unitPrice: v.unitPrice || '', 257 unitPrice: v.unitPrice || '',
@@ -102,6 +102,11 @@ @@ -102,6 +102,11 @@
102 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" /> 102 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" />
103 </template> 103 </template>
104 </uni-list-item> 104 </uni-list-item>
  105 + <uni-list-item title="物料编码">
  106 + <template v-slot:footer>
  107 + <uni-easyinput v-model="item.materialCode" :inputBorder="false" placeholder="请输入物料编码" />
  108 + </template>
  109 + </uni-list-item>
105 <uni-list-item title="状态"> 110 <uni-list-item title="状态">
106 <template v-slot:footer> 111 <template v-slot:footer>
107 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" /> 112 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" />
@@ -186,6 +191,7 @@ @@ -186,6 +191,7 @@
186 </view> 191 </view>
187 </view> 192 </view>
188 </view> 193 </view>
  194 + <view class="row"><text class="label">物料编码</text><text class="value">{{ item.materialCode }}</text></view>
189 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view> 195 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view>
190 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view> 196 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view>
191 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice) 197 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice)
@@ -267,7 +273,7 @@ export default { @@ -267,7 +273,7 @@ export default {
267 }, 273 },
268 methods: { 274 methods: {
269 defaultItem() { 275 defaultItem() {
270 - return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', status: '', quantity: '', unitPrice: '', totalAmount: 0, deliveryDate: '', sampleOrder: false } 276 + return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', materialCode: '', status: '', quantity: '', unitPrice: '', totalAmount: 0, deliveryDate: '', sampleOrder: false }
271 }, 277 },
272 onNonNegativeInput(idx, field) { 278 onNonNegativeInput(idx, field) {
273 const it = this.items[idx] 279 const it = this.items[idx]
@@ -134,6 +134,11 @@ @@ -134,6 +134,11 @@
134 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" /> 134 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" />
135 </template> 135 </template>
136 </uni-list-item> 136 </uni-list-item>
  137 + <uni-list-item title="物料编码">
  138 + <template v-slot:footer>
  139 + <uni-easyinput v-model="item.materialCode" :inputBorder="false" placeholder="请输入物料编码" />
  140 + </template>
  141 + </uni-list-item>
137 <uni-list-item title="定作物数量"> 142 <uni-list-item title="定作物数量">
138 <template v-slot:footer> 143 <template v-slot:footer>
139 <uni-easyinput v-model="item.productQuantity" type="digit" :inputBorder="false" placeholder="请输入数量kg" @input="onNonNegativeInput(idx, 'productQuantity')" @blur="onNonNegativeBlur(idx, 'productQuantity', 2)" /> 144 <uni-easyinput v-model="item.productQuantity" type="digit" :inputBorder="false" placeholder="请输入数量kg" @input="onNonNegativeInput(idx, 'productQuantity')" @blur="onNonNegativeBlur(idx, 'productQuantity', 2)" />
@@ -214,6 +219,7 @@ @@ -214,6 +219,7 @@
214 </view> 219 </view>
215 </view> 220 </view>
216 </view> 221 </view>
  222 + <view class="row"><text class="label">物料编码</text><text class="value">{{ item.materialCode }}</text></view>
217 <view class="row"><text class="label">定做物数量</text><text class="value">{{ item.productQuantity }}</text></view> 223 <view class="row"><text class="label">定做物数量</text><text class="value">{{ item.productQuantity }}</text></view>
218 <view class="row"><text class="label">加工费单价</text><text class="value">{{ formatCurrency(item.unitPrice) 224 <view class="row"><text class="label">加工费单价</text><text class="value">{{ formatCurrency(item.unitPrice)
219 }}</text> 225 }}</text>
@@ -310,7 +316,7 @@ export default { @@ -310,7 +316,7 @@ export default {
310 }, 316 },
311 methods: { 317 methods: {
312 defaultItem() { 318 defaultItem() {
313 - return { rawProductId: '', rawProductName: '', rawProductGradeId: '', rawProductGradeName: '', industry: '', quality: '', supplyTime: '', materialProductRatio: '', materialProductRatioName: '', materialProductRatioRemarks: '', productName: '', productId: '', productGrade: '', productStatus: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', productQuantity: '', unitPrice: '', amountExcludingTax: 0, totalAmount: 0, deliveryDate: '', sampleOrder: false } 319 + return { rawProductId: '', rawProductName: '', rawProductGradeId: '', rawProductGradeName: '', industry: '', quality: '', supplyTime: '', materialProductRatio: '', materialProductRatioName: '', materialProductRatioRemarks: '', productName: '', productId: '', productGrade: '', productStatus: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', materialCode:'', productQuantity: '', unitPrice: '', amountExcludingTax: 0, totalAmount: 0, deliveryDate: '', sampleOrder: false }
314 }, 320 },
315 onNumberInput(idx, field) { 321 onNumberInput(idx, field) {
316 const it = this.items[idx] 322 const it = this.items[idx]
@@ -102,6 +102,11 @@ @@ -102,6 +102,11 @@
102 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" /> 102 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" />
103 </template> 103 </template>
104 </uni-list-item> 104 </uni-list-item>
  105 + <uni-list-item title="物料编码">
  106 + <template v-slot:footer>
  107 + <uni-easyinput v-model="item.materialCode" :inputBorder="false" placeholder="请输入物料编码" />
  108 + </template>
  109 + </uni-list-item>
105 <uni-list-item title="状态"> 110 <uni-list-item title="状态">
106 <template v-slot:footer> 111 <template v-slot:footer>
107 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" /> 112 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" />
@@ -185,6 +190,7 @@ @@ -185,6 +190,7 @@
185 </view> 190 </view>
186 </view> 191 </view>
187 </view> 192 </view>
  193 + <view class="row"><text class="label">物料编码</text><text class="value">{{ item.materialCode }}</text></view>
188 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view> 194 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view>
189 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view> 195 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view>
190 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice) 196 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice)
@@ -266,7 +272,7 @@ export default { @@ -266,7 +272,7 @@ export default {
266 }, 272 },
267 methods: { 273 methods: {
268 defaultItem() { 274 defaultItem() {
269 - return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', status: '', quantity: '', unitPrice: '', amountExcludingTax: 0, totalAmount: 0, deliveryDate: '', sampleOrder: false } 275 + return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', materialCode: '', status: '', quantity: '', unitPrice: '', amountExcludingTax: 0, totalAmount: 0, deliveryDate: '', sampleOrder: false }
270 }, 276 },
271 onNumberInput(idx, field) { 277 onNumberInput(idx, field) {
272 const it = this.items[idx] 278 const it = this.items[idx]
@@ -69,6 +69,11 @@ @@ -69,6 +69,11 @@
69 </view> 69 </view>
70 </template> 70 </template>
71 </uni-list-item> 71 </uni-list-item>
  72 + <uni-list-item title="物料编码">
  73 + <template v-slot:footer>
  74 + <uni-easyinput v-model="item.materialCode" placeholder="请输入物料编码" :clearable="false" disabled />
  75 + </template>
  76 + </uni-list-item>
72 <uni-list-item title="状态"> 77 <uni-list-item title="状态">
73 <template v-slot:footer> 78 <template v-slot:footer>
74 <uni-easyinput v-model="item.status" placeholder="请输入状态" :clearable="false" disabled /> 79 <uni-easyinput v-model="item.status" placeholder="请输入状态" :clearable="false" disabled />
@@ -235,6 +240,7 @@ export default { @@ -235,6 +240,7 @@ export default {
235 length: v.length || '', 240 length: v.length || '',
236 lengthTolPos: v.lengthTolPos || '', 241 lengthTolPos: v.lengthTolPos || '',
237 lengthTolNeg: v.lengthTolNeg || '', 242 lengthTolNeg: v.lengthTolNeg || '',
  243 + materialCode: v.materialCode || '',
238 status: v.status || '', 244 status: v.status || '',
239 quantity: v.productQuantity || v.quantity || '', 245 quantity: v.productQuantity || v.quantity || '',
240 unitPrice: v.unitPrice || '', 246 unitPrice: v.unitPrice || '',
@@ -102,6 +102,11 @@ @@ -102,6 +102,11 @@
102 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" /> 102 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" />
103 </template> 103 </template>
104 </uni-list-item> 104 </uni-list-item>
  105 + <uni-list-item title="物料编码">
  106 + <template v-slot:footer>
  107 + <uni-easyinput v-model="item.materialCode" :inputBorder="false" placeholder="请输入物料编码" />
  108 + </template>
  109 + </uni-list-item>
105 <uni-list-item title="状态"> 110 <uni-list-item title="状态">
106 <template v-slot:footer> 111 <template v-slot:footer>
107 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" /> 112 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" />
@@ -185,6 +190,7 @@ @@ -185,6 +190,7 @@
185 </view> 190 </view>
186 </view> 191 </view>
187 </view> 192 </view>
  193 + <view class="row"><text class="label">物料编码</text><text class="value">{{ item.materialCode }}</text></view>
188 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view> 194 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view>
189 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view> 195 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view>
190 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice) 196 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice)
@@ -371,7 +377,7 @@ export default { @@ -371,7 +377,7 @@ export default {
371 return true 377 return true
372 }, 378 },
373 defaultItem() { 379 defaultItem() {
374 - return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', status: '', quantity: '', unitPrice: '', amountExcludingTax: 0, totalAmount: 0, deliveryDate: '', sampleOrder: false } 380 + return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', materialCode: '', status: '', quantity: '', unitPrice: '', amountExcludingTax: 0, totalAmount: 0, deliveryDate: '', sampleOrder: false }
375 }, 381 },
376 onNonNegativeInput(idx, field) { 382 onNonNegativeInput(idx, field) {
377 const it = this.items[idx] 383 const it = this.items[idx]
@@ -68,6 +68,11 @@ @@ -68,6 +68,11 @@
68 </view> 68 </view>
69 </template> 69 </template>
70 </uni-list-item> 70 </uni-list-item>
  71 + <uni-list-item title="物料编码">
  72 + <template v-slot:footer>
  73 + <uni-easyinput v-model="item.materialCode" placeholder="请输入物料编码" :clearable="false" disabled />
  74 + </template>
  75 + </uni-list-item>
71 <uni-list-item title="状态"> 76 <uni-list-item title="状态">
72 <template v-slot:footer> 77 <template v-slot:footer>
73 <uni-easyinput v-model="item.status" placeholder="请输入状态" :clearable="false" disabled /> 78 <uni-easyinput v-model="item.status" placeholder="请输入状态" :clearable="false" disabled />
@@ -233,6 +238,7 @@ export default { @@ -233,6 +238,7 @@ export default {
233 length: v.length || '', 238 length: v.length || '',
234 lengthTolPos: v.lengthTolPos || '', 239 lengthTolPos: v.lengthTolPos || '',
235 lengthTolNeg: v.lengthTolNeg || '', 240 lengthTolNeg: v.lengthTolNeg || '',
  241 + materialCode: v.materialCode || '',
236 status: v.status || '', 242 status: v.status || '',
237 quantity: v.productQuantity || v.quantity || '', 243 quantity: v.productQuantity || v.quantity || '',
238 unitPrice: v.unitPrice || '', 244 unitPrice: v.unitPrice || '',
@@ -102,6 +102,11 @@ @@ -102,6 +102,11 @@
102 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" /> 102 placeholder="请输入长度公差下限" @input="onNumberInput(idx, 'lengthTolNeg')" @blur="onNumberBlur(idx, 'lengthTolNeg', 9)" />
103 </template> 103 </template>
104 </uni-list-item> 104 </uni-list-item>
  105 + <uni-list-item title="物料编码">
  106 + <template v-slot:footer>
  107 + <uni-easyinput v-model="item.materialCode" :inputBorder="false" placeholder="请输入物料编码" />
  108 + </template>
  109 + </uni-list-item>
105 <uni-list-item title="状态"> 110 <uni-list-item title="状态">
106 <template v-slot:footer> 111 <template v-slot:footer>
107 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" /> 112 <uni-easyinput v-model="item.status" :inputBorder="false" placeholder="请输入状态" />
@@ -185,6 +190,7 @@ @@ -185,6 +190,7 @@
185 </view> 190 </view>
186 </view> 191 </view>
187 </view> 192 </view>
  193 + <view class="row"><text class="label">物料编码</text><text class="value">{{ item.materialCode }}</text></view>
188 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view> 194 <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view>
189 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view> 195 <view class="row"><text class="label">数量</text><text class="value">{{ item.quantity }}</text></view>
190 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice) 196 <view class="row"><text class="label">单价</text><text class="value">{{ formatCurrency(item.unitPrice)
@@ -266,7 +272,7 @@ export default { @@ -266,7 +272,7 @@ export default {
266 }, 272 },
267 methods: { 273 methods: {
268 defaultItem() { 274 defaultItem() {
269 - return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', status: '', quantity: '', unitPrice: '', amountExcludingTax: 0, totalAmount: 0, deliveryDate: '', sampleOrder: false } 275 + return { productId: '', productName: '', industry: '', brand: '', quality: '', thickness: '', thicknessTolPos: '', thicknessTolNeg: '', width: '', widthTolPos: '', widthTolNeg: '', length: '', lengthTolPos: '', lengthTolNeg: '', materialCode: '', status: '', quantity: '', unitPrice: '', amountExcludingTax: 0, totalAmount: 0, deliveryDate: '', sampleOrder: false }
270 }, 276 },
271 onNonNegativeInput(idx, field) { 277 onNonNegativeInput(idx, field) {
272 const it = this.items[idx] 278 const it = this.items[idx]
@@ -759,10 +759,10 @@ export default { @@ -759,10 +759,10 @@ export default {
759 759
760 .generate-btn { 760 .generate-btn {
761 margin-left: 24rpx; 761 margin-left: 24rpx;
762 - height: 64rpx;  
763 - line-height: 64rpx; 762 + height: 48rpx;
  763 + line-height: 48rpx;
764 padding: 0 24rpx; 764 padding: 0 24rpx;
765 - font-size: 28rpx; 765 + font-size: 24rpx;
766 border-radius: 8rpx; 766 border-radius: 8rpx;
767 background: $theme-primary; 767 background: $theme-primary;
768 color: #fff; 768 color: #fff;
@@ -316,10 +316,10 @@ export default { @@ -316,10 +316,10 @@ export default {
316 316
317 .generate-btn { 317 .generate-btn {
318 margin-left: 24rpx; 318 margin-left: 24rpx;
319 - height: 64rpx;  
320 - line-height: 64rpx; 319 + height: 48rpx;
  320 + line-height: 48rpx;
321 padding: 0 24rpx; 321 padding: 0 24rpx;
322 - font-size: 28rpx; 322 + font-size: 24rpx;
323 border-radius: 8rpx; 323 border-radius: 8rpx;
324 background: $theme-primary; 324 background: $theme-primary;
325 color: #fff; 325 color: #fff;
@@ -323,14 +323,14 @@ export default { @@ -323,14 +323,14 @@ export default {
323 align-items: center; 323 align-items: center;
324 324
325 .generate-btn { 325 .generate-btn {
326 - margin-left: 24rpx;  
327 - height: 64rpx;  
328 - line-height: 64rpx;  
329 - padding: 0 24rpx;  
330 - font-size: 28rpx;  
331 - border-radius: 8rpx;  
332 - background: $theme-primary;  
333 - color: #fff; 326 + margin-left: 24rpx;
  327 + height: 48rpx;
  328 + line-height: 48rpx;
  329 + padding: 0 24rpx;
  330 + font-size: 24rpx;
  331 + border-radius: 8rpx;
  332 + background: $theme-primary;
  333 + color: #fff;
334 } 334 }
335 } 335 }
336 } 336 }
@@ -20,9 +20,21 @@ @@ -20,9 +20,21 @@
20 <Product mode="view" :status="form.status" :list="form.detailList" @applyDelay="applyDelayFun" 20 <Product mode="view" :status="form.status" :list="form.detailList" @applyDelay="applyDelayFun"
21 @split="splitFun" /> 21 @split="splitFun" />
22 </view> 22 </view>
  23 +
23 <view class="section"> 24 <view class="section">
24 <view class="row"><text class="label">签收单据</text><text class="value act" @click="downloadFile(form.fileId, form.fileName)">{{ form.fileName }}</text></view> 25 <view class="row"><text class="label">签收单据</text><text class="value act" @click="downloadFile(form.fileId, form.fileName)">{{ form.fileName }}</text></view>
25 </view> 26 </view>
  27 +
  28 + <view class="section">
  29 + <view class="row">
  30 + <text class="label">质保书</text>
  31 + <view class="value">
  32 + <view v-for="item in form.warrantyCertificateList" :key="item.fileId" class="file-item" @click="downloadFile(item.fileId, item.fileName)">
  33 + <text class="value act">{{ item.fileName }}</text>
  34 + </view>
  35 + </view>
  36 + </view>
  37 + </view>
26 </view> 38 </view>
27 </scroll-view> 39 </scroll-view>
28 <detail-buttons :buttons="displayButtons" @click="handleButtonClick" /> 40 <detail-buttons :buttons="displayButtons" @click="handleButtonClick" />
@@ -47,11 +59,11 @@ @@ -47,11 +59,11 @@
47 <uni-popup ref="fillDatePopup" type="bottom" :mask-click="false"> 59 <uni-popup ref="fillDatePopup" type="bottom" :mask-click="false">
48 <view class="dialog"> 60 <view class="dialog">
49 <view class="dialog_header"> 61 <view class="dialog_header">
50 - <text>填写日期</text> 62 + <text>填写日期</text>
51 <view class="dialog_close" @click="closeFillDateInfo"></view> 63 <view class="dialog_close" @click="closeFillDateInfo"></view>
52 - </view> 64 + </view>
53 <view class="dialog_body fill-data_body"> 65 <view class="dialog_body fill-data_body">
54 - <uni-list> 66 + <uni-list>
55 <uni-list-item title="原发货日期"> 67 <uni-list-item title="原发货日期">
56 <template v-slot:footer> 68 <template v-slot:footer>
57 <view class="value">{{ fillDateForm.shipmentsDate }}</view> 69 <view class="value">{{ fillDateForm.shipmentsDate }}</view>
@@ -827,4 +839,10 @@ export default { @@ -827,4 +839,10 @@ export default {
827 } 839 }
828 } 840 }
829 } 841 }
  842 +.file-item {
  843 + margin-bottom: 12rpx;
  844 + &:last-child {
  845 + margin-bottom: 0;
  846 + }
  847 +}
830 </style> 848 </style>
@@ -74,9 +74,9 @@ @@ -74,9 +74,9 @@
74 <uni-easyinput v-model="form.priceListNo" placeholder="请输入价格表编号" :inputBorder="false" /> 74 <uni-easyinput v-model="form.priceListNo" placeholder="请输入价格表编号" :inputBorder="false" />
75 </template> 75 </template>
76 </uni-list-item> 76 </uni-list-item>
77 - <uni-list-item title="开票情况"> 77 + <uni-list-item title="开票要求">
78 <template v-slot:footer> 78 <template v-slot:footer>
79 - <uni-easyinput v-model="form.invoicingStatus" placeholder="请输入开票情况" :inputBorder="false" /> 79 + <uni-easyinput v-model="form.invoicingStatus" placeholder="请输入开票要求" :inputBorder="false" />
80 </template> 80 </template>
81 </uni-list-item> 81 </uni-list-item>
82 <uni-list-item class="amount-item"> 82 <uni-list-item class="amount-item">
@@ -191,7 +191,7 @@ @@ -191,7 +191,7 @@
191 191
192 <view class="section"> 192 <view class="section">
193 <view class="row"><text class="label">价格表编号</text><text class="value">{{ form.priceListNo }}</text></view> 193 <view class="row"><text class="label">价格表编号</text><text class="value">{{ form.priceListNo }}</text></view>
194 - <view class="row"><text class="label">开票情况</text><text class="value">{{ form.invoicingStatus }}</text></view> 194 + <view class="row"><text class="label">开票要求</text><text class="value">{{ form.invoicingStatus }}</text></view>
195 <view class="row"><text class="label">运费</text><text class="value">{{ form.shippingCost }}</text></view> 195 <view class="row"><text class="label">运费</text><text class="value">{{ form.shippingCost }}</text></view>
196 <view class="row"><text class="label">执行标准</text><text class="value">{{ getDicName('APPLICABLE_STANDARD', 196 <view class="row"><text class="label">执行标准</text><text class="value">{{ getDicName('APPLICABLE_STANDARD',
197 form.executionStandard, dicOptions.APPLICABLE_STANDARD) }}</text></view> 197 form.executionStandard, dicOptions.APPLICABLE_STANDARD) }}</text></view>
@@ -331,7 +331,7 @@ export default { @@ -331,7 +331,7 @@ export default {
331 const m = res.data || {} 331 const m = res.data || {}
332 const next = { ...this.form, ...m } 332 const next = { ...this.form, ...m }
333 next.id = m.id || m.code || id 333 next.id = m.id || m.code || id
334 - next.purchaseOrderLineList = Array.isArray(m.purchaseOrderLineList) ? m.purchaseOrderLineList.map(x => ({ 334 + next.purchaseOrderLineList = Array.isArray(m.purchaseOrderLineList) ? m.purchaseOrderLineList.map(x => ({
335 ...x, 335 ...x,
336 assessmentExceedsAgreement: Number(x.assessmentExceedsAgreement || 0).toFixed(2) || 0.00, 336 assessmentExceedsAgreement: Number(x.assessmentExceedsAgreement || 0).toFixed(2) || 0.00,
337 })) : [] 337 })) : []
@@ -37,13 +37,16 @@ @@ -37,13 +37,16 @@
37 37
38 <view class="section"> 38 <view class="section">
39 <view class="row"><text class="label">价格表编号</text><text class="value">{{ form.priceListNo }}</text></view> 39 <view class="row"><text class="label">价格表编号</text><text class="value">{{ form.priceListNo }}</text></view>
40 - <view class="row"><text class="label">开票情况</text><text class="value">{{ form.invoicingStatus }}</text></view> 40 + <view class="row"><text class="label">开票要求</text><text class="value">{{ form.invoicingStatus }}</text></view>
41 <view class="row"><text class="label">运费</text><text class="value">{{ form.shippingCost }}</text></view> 41 <view class="row"><text class="label">运费</text><text class="value">{{ form.shippingCost }}</text></view>
42 <view class="row"><text class="label">执行标准</text><text class="value">{{ getDicName('APPLICABLE_STANDARD', 42 <view class="row"><text class="label">执行标准</text><text class="value">{{ getDicName('APPLICABLE_STANDARD',
43 form.executionStandard, dicOptions.APPLICABLE_STANDARD) }}</text></view> 43 form.executionStandard, dicOptions.APPLICABLE_STANDARD) }}</text></view>
44 <view v-if="form.executionStandard === 'OTHER'" class="row"><text class="label">标准</text><text 44 <view v-if="form.executionStandard === 'OTHER'" class="row"><text class="label">标准</text><text
45 class="value">{{ form.executionStandardRemarks }}</text></view> 45 class="value">{{ form.executionStandardRemarks }}</text></view>
46 </view> 46 </view>
  47 + <view class="section">
  48 + <view class="row"><text class="label">质保书</text><text class="value act" @click="downloadFile(form.warrantyCertificateFileId, form.warrantyCertificateFileName)">{{ form.warrantyCertificateFileName }}</text></view>
  49 + </view>
47 50
48 <view class="title-header"> 51 <view class="title-header">
49 <image class="title-header_icon" src="/static/images/title.png" /> 52 <image class="title-header_icon" src="/static/images/title.png" />
@@ -66,13 +69,32 @@ @@ -66,13 +69,32 @@
66 </view> 69 </view>
67 </scroll-view> 70 </scroll-view>
68 <detail-buttons :buttons="displayButtons" @click="handleButtonClick" /> 71 <detail-buttons :buttons="displayButtons" @click="handleButtonClick" />
  72 + <uni-popup ref="uploadPopup" type="bottom" :mask-click="false">
  73 + <view class="dialog">
  74 + <view class="dialog_header">
  75 + <text>上传质保书</text>
  76 + <view class="dialog_close" @click="closeUploadInfo"></view>
  77 + </view>
  78 + <view class="dialog_body">
  79 + <view class="dialog_row">
  80 + <text class="dialog_label">质保书</text>
  81 + <FileUpload v-model="uploadFile" />
  82 + </view>
  83 + </view>
  84 + <view class="dialog_footer">
  85 + <button class="btn confirm" type="primary" @click="onUploadSave">保存</button>
  86 + </view>
  87 + </view>
  88 + </uni-popup>
69 </view> 89 </view>
70 </template> 90 </template>
71 91
72 <script> 92 <script>
73 -import { getDetailApi, cancelApi, checkApi } from '@/api/order_list.js' 93 +import { getDetailApi, cancelApi, checkApi, uploadWarrantyCertificate } from '@/api/order_list.js'
74 import Product from './product.vue' 94 import Product from './product.vue'
75 import DetailButtons from '@/components/detail-buttons/index.vue' 95 import DetailButtons from '@/components/detail-buttons/index.vue'
  96 +import FileUpload from '@/components/file-upload/index.vue'
  97 +import { downloadFile } from '@/utils/downloadFile.js'
76 import { 98 import {
77 getDicName 99 getDicName
78 } from '@/utils/dic.js' 100 } from '@/utils/dic.js'
@@ -82,7 +104,7 @@ import { @@ -82,7 +104,7 @@ import {
82 104
83 export default { 105 export default {
84 name: 'OrderListDetail', 106 name: 'OrderListDetail',
85 - components: { Product, DetailButtons }, 107 + components: { Product, DetailButtons, FileUpload },
86 data() { 108 data() {
87 return { 109 return {
88 form: {}, 110 form: {},
@@ -92,7 +114,9 @@ export default { @@ -92,7 +114,9 @@ export default {
92 { text: '审核', visible: true, variant: 'primary', event: 'audit' }, 114 { text: '审核', visible: true, variant: 'primary', event: 'audit' },
93 { text: '申请发货', visible: true, variant: 'outline', event: 'shipmentApply' }, 115 { text: '申请发货', visible: true, variant: 'outline', event: 'shipmentApply' },
94 { text: '取消', visible: true, variant: 'outline', event: 'cancel', style: { color: 'rgba(0,0,0,0.9)', border: '1px solid #DCDCDC' } }, 116 { text: '取消', visible: true, variant: 'outline', event: 'cancel', style: { color: 'rgba(0,0,0,0.9)', border: '1px solid #DCDCDC' } },
  117 + { text: '上传质保书', visible: true, variant: 'outline', event: 'upload' },
95 ], 118 ],
  119 + uploadFile: { id: '', name: '' },
96 dicOptions: { 120 dicOptions: {
97 AUDIT_STATUS: [], 121 AUDIT_STATUS: [],
98 SUPPLIER: [], 122 SUPPLIER: [],
@@ -105,13 +129,16 @@ export default { @@ -105,13 +129,16 @@ export default {
105 const s = String((this.form && this.form.status) || '') 129 const s = String((this.form && this.form.status) || '')
106 const e = String((this.form && this.form.examineStatus) || '') 130 const e = String((this.form && this.form.examineStatus) || '')
107 const d = (this.form && this.form.showExamine) || false 131 const d = (this.form && this.form.showExamine) || false
  132 + const u = (this.form && this.form.showUpload) || false
  133 +
108 return { 134 return {
109 isRefuse: e === 'REFUSE', 135 isRefuse: e === 'REFUSE',
110 isAudit: e === 'AUDIT', 136 isAudit: e === 'AUDIT',
111 isAuditDetail: !this.form.sampleOrder, 137 isAuditDetail: !this.form.sampleOrder,
112 canExamine: d, 138 canExamine: d,
113 canDeliveryApply: s === 'ISSUED' && (!this.form.freeze || false) && Number(this.form.totalQuantity) > 0, 139 canDeliveryApply: s === 'ISSUED' && (!this.form.freeze || false) && Number(this.form.totalQuantity) > 0,
114 - contractCreateBy: this.form.contractCreateBy 140 + contractCreateBy: this.form.contractCreateBy,
  141 + showUpload: u,
115 } 142 }
116 }, 143 },
117 displayButtons() { 144 displayButtons() {
@@ -123,6 +150,7 @@ export default { @@ -123,6 +150,7 @@ export default {
123 { ...this.buttons[2], visible: f.isAudit && f.canExamine && this.$auth.hasPermi('order-manage:order-list:approve') }, 150 { ...this.buttons[2], visible: f.isAudit && f.canExamine && this.$auth.hasPermi('order-manage:order-list:approve') },
124 { ...this.buttons[3], visible: f.canDeliveryApply && this.$auth.hasPermi('order-manage:order-list:apply') }, 151 { ...this.buttons[3], visible: f.canDeliveryApply && this.$auth.hasPermi('order-manage:order-list:apply') },
125 { ...this.buttons[4], visible: f.isRefuse && f.contractCreateBy && this.$auth.hasPermi('order-manage:order-list:cancel') }, 152 { ...this.buttons[4], visible: f.isRefuse && f.contractCreateBy && this.$auth.hasPermi('order-manage:order-list:cancel') },
  153 + { ...this.buttons[5], visible: f.showUpload && this.$auth.hasPermi('order-manage:order-list:upload') },
126 ] 154 ]
127 } 155 }
128 }, 156 },
@@ -151,6 +179,7 @@ export default { @@ -151,6 +179,7 @@ export default {
151 audit: () => this.onAudit(), 179 audit: () => this.onAudit(),
152 shipmentApply: () => this.onShipmentApply(), 180 shipmentApply: () => this.onShipmentApply(),
153 cancel: () => this.onCancel(), 181 cancel: () => this.onCancel(),
  182 + upload: () => this.onUpload(),
154 } 183 }
155 const fn = map[btn.event] 184 const fn = map[btn.event]
156 if (typeof fn === 'function') fn() 185 if (typeof fn === 'function') fn()
@@ -206,6 +235,37 @@ export default { @@ -206,6 +235,37 @@ export default {
206 } 235 }
207 }) 236 })
208 }, 237 },
  238 + onUpload() {
  239 + this.$refs.uploadPopup && this.$refs.uploadPopup.open()
  240 + },
  241 + downloadFile,
  242 + closeUploadInfo() {
  243 + this.uploadFile = { id: '', name: '' };
  244 + this.$refs.uploadPopup && this.$refs.uploadPopup.close()
  245 + },
  246 + async onUploadSave() {
  247 + console.log('onUploadSave__this.uploadFile', this.uploadFile)
  248 + if (!this.uploadFile.id) {
  249 + uni.showToast({
  250 + title: '请上传质保书',
  251 + icon: 'none'
  252 + })
  253 + return
  254 + }
  255 + const params = {
  256 + warrantyCertificateFileId: this.uploadFile.id,
  257 + warrantyCertificateFileName: this.uploadFile.name,
  258 + id: this.form.id
  259 + }
  260 + try {
  261 + await uploadWarrantyCertificate(params)
  262 + uni.showToast({ title: '保存成功', icon: 'success' })
  263 + setTimeout(() => { uni.redirectTo({ url: '/pages/order_list/index' }) }, 300)
  264 + } catch (e) {
  265 + uni.showToast({ title: (e && e.msg) || '保存失败', icon: 'none' })
  266 + }
  267 + },
  268 +
209 loadAllDicData() { 269 loadAllDicData() {
210 const dicCodes = ['AUDIT_STATUS', 'SUPPLIER', 'APPLICABLE_STANDARD'] 270 const dicCodes = ['AUDIT_STATUS', 'SUPPLIER', 'APPLICABLE_STANDARD']
211 return getDicByCodes(dicCodes).then(results => { 271 return getDicByCodes(dicCodes).then(results => {
@@ -472,4 +532,82 @@ export default { @@ -472,4 +532,82 @@ export default {
472 font-weight: 600; 532 font-weight: 600;
473 } 533 }
474 } 534 }
  535 +
  536 +.dialog {
  537 + width: 100%;
  538 + overflow-y: auto;
  539 + padding: 32rpx 28rpx calc(20rpx + env(safe-area-inset-bottom));
  540 + background: #fff;
  541 + border-radius: 20rpx 20rpx 0 0;
  542 +
  543 + &_header {
  544 + position: relative;
  545 + text-align: center;
  546 + font-size: 34rpx;
  547 + font-weight: 600;
  548 + margin-bottom: 12rpx;
  549 + color: rgba(0, 0, 0, 0.9);
  550 + }
  551 +
  552 + &_body {
  553 + padding: 12rpx 4rpx 24rpx;
  554 + max-height: 70vh;
  555 + overflow-y: auto;
  556 +
  557 + }
  558 +
  559 + .split_body {
  560 + max-height: 60vh;
  561 + }
  562 +
  563 + &_footer {
  564 + padding-top: 12rpx;
  565 + display: flex;
  566 + justify-content: center;
  567 +
  568 + .btn {
  569 + width: 100%;
  570 + height: 80rpx;
  571 + line-height: 80rpx;
  572 + border-radius: 12rpx;
  573 + font-size: 32rpx;
  574 + background: $theme-primary;
  575 + color: #fff;
  576 +
  577 + &::after {
  578 + border: none;
  579 + }
  580 + }
  581 + }
  582 +}
  583 +
  584 +.dialog_close {
  585 + position: absolute;
  586 + right: 16rpx;
  587 + top: 0rpx;
  588 + width: 48rpx;
  589 + height: 48rpx;
  590 + background-image: url('~@/static/images/flow/close_icon.png');
  591 + background-repeat: no-repeat;
  592 + background-position: right center;
  593 + background-size: cover;
  594 +}
  595 +
  596 +.dialog_row {
  597 + margin-bottom: 24rpx;
  598 +}
  599 +
  600 +.dialog_label {
  601 + display: block;
  602 + margin-bottom: 12rpx;
  603 + font-size: 28rpx;
  604 + color: rgba(0, 0, 0, 0.9);
  605 +}
  606 +
  607 +.upload-show {
  608 + margin-top: 8rpx;
  609 + font-size: 26rpx;
  610 + color: rgba(0, 0, 0, 0.6);
  611 +}
  612 +
475 </style> 613 </style>
@@ -72,9 +72,9 @@ @@ -72,9 +72,9 @@
72 <uni-easyinput v-model="form.priceListNo" placeholder="请输入价格表编号" :inputBorder="false" /> 72 <uni-easyinput v-model="form.priceListNo" placeholder="请输入价格表编号" :inputBorder="false" />
73 </template> 73 </template>
74 </uni-list-item> 74 </uni-list-item>
75 - <uni-list-item title="开票情况"> 75 + <uni-list-item title="开票要求">
76 <template v-slot:footer> 76 <template v-slot:footer>
77 - <uni-easyinput v-model="form.invoicingStatus" placeholder="请输入开票情况" :inputBorder="false" /> 77 + <uni-easyinput v-model="form.invoicingStatus" placeholder="请输入开票要求" :inputBorder="false" />
78 </template> 78 </template>
79 </uni-list-item> 79 </uni-list-item>
80 <uni-list-item class="amount-item"> 80 <uni-list-item class="amount-item">
@@ -155,7 +155,7 @@ @@ -155,7 +155,7 @@
155 155
156 </uni-list> 156 </uni-list>
157 </scroll-view> 157 </scroll-view>
158 - 158 +
159 <SingleSelectSheet :visible.sync="sheet.visible" :title="sheet.title" :options="sheet.options" v-model="sheet.value" 159 <SingleSelectSheet :visible.sync="sheet.visible" :title="sheet.title" :options="sheet.options" v-model="sheet.value"
160 @confirm="onSheetConfirm" /> 160 @confirm="onSheetConfirm" />
161 </view> 161 </view>
@@ -230,7 +230,7 @@ export default { @@ -230,7 +230,7 @@ export default {
230 const m = res.data || {} 230 const m = res.data || {}
231 const next = { ...this.form, ...m } 231 const next = { ...this.form, ...m }
232 next.id = m.id || m.code || id 232 next.id = m.id || m.code || id
233 - next.purchaseOrderLineList = Array.isArray(m.purchaseOrderLineList) ? m.purchaseOrderLineList.map(x => ({ 233 + next.purchaseOrderLineList = Array.isArray(m.purchaseOrderLineList) ? m.purchaseOrderLineList.map(x => ({
234 ...x, 234 ...x,
235 assessmentExceedsAgreement: Number(x.assessmentExceedsAgreement || 0).toFixed(2) || 0.00, 235 assessmentExceedsAgreement: Number(x.assessmentExceedsAgreement || 0).toFixed(2) || 0.00,
236 })) : [] 236 })) : []
@@ -26,7 +26,7 @@ @@ -26,7 +26,7 @@
26 26
27 <view class="section"> 27 <view class="section">
28 <view class="row"><text class="label">价格表编号</text><text class="value">{{ form.priceListNo }}</text></view> 28 <view class="row"><text class="label">价格表编号</text><text class="value">{{ form.priceListNo }}</text></view>
29 - <view class="row"><text class="label">开票情况</text><text class="value">{{ form.invoicingStatus }}</text></view> 29 + <view class="row"><text class="label">开票要求</text><text class="value">{{ form.invoicingStatus }}</text></view>
30 <view class="row"><text class="label">运费</text><text class="value">{{ form.shippingCost }}</text></view> 30 <view class="row"><text class="label">运费</text><text class="value">{{ form.shippingCost }}</text></view>
31 <view class="row"><text class="label">执行标准</text><text class="value">{{ getDicName('APPLICABLE_STANDARD', 31 <view class="row"><text class="label">执行标准</text><text class="value">{{ getDicName('APPLICABLE_STANDARD',
32 form.executionStandard, dicOptions.APPLICABLE_STANDARD) }}</text></view> 32 form.executionStandard, dicOptions.APPLICABLE_STANDARD) }}</text></view>