Commit 255bc6f174b682348cda90e76205d34b5ebf4057
Merge remote-tracking branch 'origin/cjerp-1.0' into publish_cjerp
Showing
35 changed files
with
502 additions
and
141 deletions
| @@ -123,7 +123,7 @@ | @@ -123,7 +123,7 @@ | ||
| 123 | </uni-list-item> | 123 | </uni-list-item> |
| 124 | <uni-list-item title="备注"> | 124 | <uni-list-item title="备注"> |
| 125 | <template v-slot:footer> | 125 | <template v-slot:footer> |
| 126 | - <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 126 | + <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000"/> |
| 127 | </template> | 127 | </template> |
| 128 | </uni-list-item> | 128 | </uni-list-item> |
| 129 | <view class="quality"> | 129 | <view class="quality"> |
| @@ -233,10 +233,10 @@ export default { | @@ -233,10 +233,10 @@ export default { | ||
| 233 | executionStandardName: '', | 233 | executionStandardName: '', |
| 234 | executionStandardRemarks: '', | 234 | executionStandardRemarks: '', |
| 235 | includesPackagingFee: false, | 235 | includesPackagingFee: false, |
| 236 | - includesPackagingFeeName: '', | 236 | + includesPackagingFeeName: '否', |
| 237 | includesTransportFee: false, | 237 | includesTransportFee: false, |
| 238 | - includesTransportFeeName: '', | ||
| 239 | - unit: '美元、公斤、元美/公斤', | 238 | + includesTransportFeeName: '否', |
| 239 | + unit: '美元、公斤、美元/公斤', | ||
| 240 | totalAmountCapital: '', | 240 | totalAmountCapital: '', |
| 241 | destinationId: [], | 241 | destinationId: [], |
| 242 | destinationLabel: '', | 242 | destinationLabel: '', |
| @@ -215,7 +215,7 @@ export default { | @@ -215,7 +215,7 @@ export default { | ||
| 215 | const t = this.detail.standardApproved || false | 215 | const t = this.detail.standardApproved || false |
| 216 | const e = this.detail.standardShowExamine || false | 216 | const e = this.detail.standardShowExamine || false |
| 217 | return [ | 217 | return [ |
| 218 | - { ...this.buttons[0], visible: (s === 'DRAFT' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:modifyx')) }, | 218 | + { ...this.buttons[0], visible: (s === 'DRAFT' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:modify')) }, |
| 219 | { ...this.buttons[1], visible: (s === 'DRAFT' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:delete')) }, | 219 | { ...this.buttons[1], visible: (s === 'DRAFT' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:delete')) }, |
| 220 | { ...this.buttons[2], visible: (s !== 'DELETED' && t !== 'AUDIT' && t !== 'PASS' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:upload')) }, | 220 | { ...this.buttons[2], visible: (s !== 'DELETED' && t !== 'AUDIT' && t !== 'PASS' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:upload')) }, |
| 221 | { ...this.buttons[3], visible: (s === 'STANDARD' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:upload-seal')) }, | 221 | { ...this.buttons[3], visible: (s === 'STANDARD' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:upload-seal')) }, |
| @@ -61,7 +61,7 @@ | @@ -61,7 +61,7 @@ | ||
| 61 | <text>订单总额</text><text class="amount" :style="{ color: '#b67a76' }">{{ item.totalAmountIncludingTax ? '¥' : '' }}{{ formatAmount(item.totalAmountIncludingTax) || '-' }}</text> | 61 | <text>订单总额</text><text class="amount" :style="{ color: '#b67a76' }">{{ item.totalAmountIncludingTax ? '¥' : '' }}{{ formatAmount(item.totalAmountIncludingTax) || '-' }}</text> |
| 62 | </view> | 62 | </view> |
| 63 | <view class="info-row" v-if="item.status === 'STANDARD'"> | 63 | <view class="info-row" v-if="item.status === 'STANDARD'"> |
| 64 | - <text>正式合同规范性审核状态</text><span class="info-status" :style="item.standardApprovedName ? getStatusCss(item.standardApprovedName) : ''">{{ item.standardApprovedName || '-' }}</span> | 64 | + <text>标准合同规范性审核状态</text><span class="info-status" :style="item.standardApprovedName ? getStatusCss(item.standardApprovedName) : ''">{{ item.standardApprovedName || '-' }}</span> |
| 65 | </view> | 65 | </view> |
| 66 | <view class="info-row"> | 66 | <view class="info-row"> |
| 67 | <text>订货日期</text><text>{{ item.orderDate }}</text> | 67 | <text>订货日期</text><text>{{ item.orderDate }}</text> |
| @@ -104,11 +104,7 @@ export default { | @@ -104,11 +104,7 @@ export default { | ||
| 104 | searchKeyword: '', | 104 | searchKeyword: '', |
| 105 | searchKeywordDebounced: '', | 105 | searchKeywordDebounced: '', |
| 106 | 106 | ||
| 107 | - tabs: [ | ||
| 108 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 109 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 110 | - { label: '已删除合同', value: 'DELETED' } | ||
| 111 | - ], | 107 | + |
| 112 | status: 'DRAFT', | 108 | status: 'DRAFT', |
| 113 | 109 | ||
| 114 | query: { deptId: '', deptName: '', dateRange: [] }, | 110 | query: { deptId: '', deptName: '', dateRange: [] }, |
| @@ -126,6 +122,23 @@ export default { | @@ -126,6 +122,23 @@ export default { | ||
| 126 | } | 122 | } |
| 127 | }, | 123 | }, |
| 128 | computed: { | 124 | computed: { |
| 125 | + roleCodes() { | ||
| 126 | + const g = this.$store && this.$store.getters | ||
| 127 | + return (g && g.roleCodes) || [] | ||
| 128 | + }, | ||
| 129 | + tabs() { | ||
| 130 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 131 | + return [ | ||
| 132 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 133 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 134 | + { label: '已删除合同', value: 'DELETED' } | ||
| 135 | + ] | ||
| 136 | + } | ||
| 137 | + return [ | ||
| 138 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 139 | + { label: '标准合同', value: 'STANDARD' } | ||
| 140 | + ] | ||
| 141 | + }, | ||
| 129 | extraCombined() { | 142 | extraCombined() { |
| 130 | return { | 143 | return { |
| 131 | keyword: this.searchKeywordDebounced || undefined, | 144 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -344,10 +357,10 @@ export default { | @@ -344,10 +357,10 @@ export default { | ||
| 344 | margin-bottom: 0; | 357 | margin-bottom: 0; |
| 345 | } | 358 | } |
| 346 | text { | 359 | text { |
| 347 | - width: 60%; | 360 | + width: 50%; |
| 348 | &:last-child { | 361 | &:last-child { |
| 349 | color: rgba(0,0,0,0.9); | 362 | color: rgba(0,0,0,0.9); |
| 350 | - width: 40%; | 363 | + width: 50%; |
| 351 | } | 364 | } |
| 352 | } | 365 | } |
| 353 | } | 366 | } |
| @@ -121,7 +121,7 @@ | @@ -121,7 +121,7 @@ | ||
| 121 | </uni-list-item> | 121 | </uni-list-item> |
| 122 | <uni-list-item title="备注"> | 122 | <uni-list-item title="备注"> |
| 123 | <template v-slot:footer> | 123 | <template v-slot:footer> |
| 124 | - <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 124 | + <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000" /> |
| 125 | </template> | 125 | </template> |
| 126 | </uni-list-item> | 126 | </uni-list-item> |
| 127 | 127 | ||
| @@ -220,9 +220,9 @@ export default { | @@ -220,9 +220,9 @@ export default { | ||
| 220 | executionStandardName: '', | 220 | executionStandardName: '', |
| 221 | executionStandardRemarks: '', | 221 | executionStandardRemarks: '', |
| 222 | includesPackagingFee: false, | 222 | includesPackagingFee: false, |
| 223 | - includesPackagingFeeName: '', | 223 | + includesPackagingFeeName: '否', |
| 224 | includesTransportFee: false, | 224 | includesTransportFee: false, |
| 225 | - includesTransportFeeName: '', | 225 | + includesTransportFeeName: '否', |
| 226 | unit: '美元、公斤、美元/公斤', | 226 | unit: '美元、公斤、美元/公斤', |
| 227 | totalAmountCapital: '', | 227 | totalAmountCapital: '', |
| 228 | depositInfo: '', | 228 | depositInfo: '', |
| @@ -123,7 +123,7 @@ | @@ -123,7 +123,7 @@ | ||
| 123 | </uni-list-item> | 123 | </uni-list-item> |
| 124 | <uni-list-item title="备注"> | 124 | <uni-list-item title="备注"> |
| 125 | <template v-slot:footer> | 125 | <template v-slot:footer> |
| 126 | - <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 126 | + <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000" /> |
| 127 | </template> | 127 | </template> |
| 128 | </uni-list-item> | 128 | </uni-list-item> |
| 129 | <view class="quality"> | 129 | <view class="quality"> |
| @@ -233,9 +233,9 @@ export default { | @@ -233,9 +233,9 @@ export default { | ||
| 233 | executionStandardName: '', | 233 | executionStandardName: '', |
| 234 | executionStandardRemarks: '', | 234 | executionStandardRemarks: '', |
| 235 | includesPackagingFee: false, | 235 | includesPackagingFee: false, |
| 236 | - includesPackagingFeeName: '', | 236 | + includesPackagingFeeName: '否', |
| 237 | includesTransportFee: false, | 237 | includesTransportFee: false, |
| 238 | - includesTransportFeeName: '', | 238 | + includesTransportFeeName: '否', |
| 239 | unit: '美元、公斤、美元/公斤', | 239 | unit: '美元、公斤、美元/公斤', |
| 240 | totalAmountCapital: '', | 240 | totalAmountCapital: '', |
| 241 | destinationId: [], | 241 | destinationId: [], |
| @@ -4,8 +4,13 @@ | @@ -4,8 +4,13 @@ | ||
| 4 | <view class="detail-page"> | 4 | <view class="detail-page"> |
| 5 | <view class="section"> | 5 | <view class="section"> |
| 6 | <text class="row customer">{{ detail.code }}</text> | 6 | <text class="row customer">{{ detail.code }}</text> |
| 7 | - <view class="row" v-if="detail.status === 'STANDARD' || detail.status === 'FORMAL'"><text class="label">{{ detail.status === 'STANDARD' ? '标准合同' : '正式合同' }}规范性审核状态</text><text class="value"><span class="info-status" :style="detail.standardApprovedName ? getStatusCss(detail.standardApprovedName) : ''" >{{ detail.standardApprovedName || '-' }}</span></text></view> | ||
| 8 | - <view class="row" v-if="detail.status === 'STANDARD'"><text class="label">合同状态</text><text class="value"><span class="info-status" :style="detail.shippingStatusName ? getShippingStatusName(detail.shippingStatusName) : { color: '#000'}" >{{ detail.shippingStatusName || '-' }}</span></text></view> | 7 | + <view class="row" v-if="detail.status === 'STANDARD' || detail.status === 'FORMAL'"> |
| 8 | + <text class="label">{{ detail.status === 'STANDARD' ? '标准合同' : '正式合同' }}规范性审核状态</text> | ||
| 9 | + <text class="value"> | ||
| 10 | + <span v-if="detail.status === 'STANDARD'" class="info-status" :style="detail.standardApprovedName ? getStatusCss(detail.standardApprovedName) : ''" >{{ detail.standardApprovedName || '-' }}</span> | ||
| 11 | + <span v-if="detail.status === 'FORMAL'" class="info-status" :style="detail.formalApprovedName ? getStatusCss(detail.formalApprovedName) : ''" >{{ detail.formalApprovedName || '-' }}</span> | ||
| 12 | + </text> | ||
| 13 | + </view> <view class="row" v-if="detail.status === 'STANDARD'"><text class="label">合同状态</text><text class="value"><span class="info-status" :style="detail.shippingStatusName ? getShippingStatusName(detail.shippingStatusName) : { color: '#000'}" >{{ detail.shippingStatusName || '-' }}</span></text></view> | ||
| 9 | <view class="row"><text class="label">供方</text><text class="value">{{ detail.supplierName || '-' | 14 | <view class="row"><text class="label">供方</text><text class="value">{{ detail.supplierName || '-' |
| 10 | }}</text></view> | 15 | }}</text></view> |
| 11 | <view class="row"><text class="label">需方</text><text class="value">{{ detail.buyerName || '-' | 16 | <view class="row"><text class="label">需方</text><text class="value">{{ detail.buyerName || '-' |
| @@ -119,7 +124,7 @@ import ProductRel from './productRel.vue' | @@ -119,7 +124,7 @@ import ProductRel from './productRel.vue' | ||
| 119 | import DetailButtons from '@/components/detail-buttons/index.vue' | 124 | import DetailButtons from '@/components/detail-buttons/index.vue' |
| 120 | import FileUpload from '@/components/file-upload/index.vue' | 125 | import FileUpload from '@/components/file-upload/index.vue' |
| 121 | import SingleSelectSheet from '@/components/single-select/index.vue' | 126 | import SingleSelectSheet from '@/components/single-select/index.vue' |
| 122 | -import { fillStandardApprovedName } from '@/utils/dic.js' | 127 | +import { fillStandardApprovedName, fillFormalApprovedName } from '@/utils/dic.js' |
| 123 | 128 | ||
| 124 | export default { | 129 | export default { |
| 125 | name: 'ContractForeignStockDetail', | 130 | name: 'ContractForeignStockDetail', |
| @@ -466,6 +471,7 @@ export default { | @@ -466,6 +471,7 @@ export default { | ||
| 466 | destinationLabel: data.provinceName && data.cityName && data.districtName ? `${data.provinceName} / ${data.cityName} / ${data.districtName}` : '', | 471 | destinationLabel: data.provinceName && data.cityName && data.districtName ? `${data.provinceName} / ${data.cityName} / ${data.districtName}` : '', |
| 467 | } | 472 | } |
| 468 | this.detail = await fillStandardApprovedName(this.detail) | 473 | this.detail = await fillStandardApprovedName(this.detail) |
| 474 | + this.detail = await fillFormalApprovedName(this.detail) | ||
| 469 | const lines = Array.isArray(data.contractDistributorLineList) ? data.contractDistributorLineList : [] | 475 | const lines = Array.isArray(data.contractDistributorLineList) ? data.contractDistributorLineList : [] |
| 470 | this.productList = lines | 476 | this.productList = lines |
| 471 | } catch (e) { | 477 | } catch (e) { |
| @@ -105,13 +105,6 @@ export default { | @@ -105,13 +105,6 @@ export default { | ||
| 105 | return { | 105 | return { |
| 106 | searchKeyword: '', | 106 | searchKeyword: '', |
| 107 | searchKeywordDebounced: '', | 107 | searchKeywordDebounced: '', |
| 108 | - | ||
| 109 | - tabs: [ | ||
| 110 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 111 | - { label: '正式合同', value: 'FORMAL' }, | ||
| 112 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 113 | - { label: '已删除合同', value: 'DELETED' } | ||
| 114 | - ], | ||
| 115 | status: 'DRAFT', | 108 | status: 'DRAFT', |
| 116 | 109 | ||
| 117 | query: { deptId: '', deptName: '', dateRange: [] }, | 110 | query: { deptId: '', deptName: '', dateRange: [] }, |
| @@ -129,6 +122,25 @@ export default { | @@ -129,6 +122,25 @@ export default { | ||
| 129 | } | 122 | } |
| 130 | }, | 123 | }, |
| 131 | computed: { | 124 | computed: { |
| 125 | + roleCodes() { | ||
| 126 | + const g = this.$store && this.$store.getters | ||
| 127 | + return (g && g.roleCodes) || [] | ||
| 128 | + }, | ||
| 129 | + tabs() { | ||
| 130 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 131 | + return [ | ||
| 132 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 133 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 134 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 135 | + { label: '已删除合同', value: 'DELETED' } | ||
| 136 | + ] | ||
| 137 | + } | ||
| 138 | + return [ | ||
| 139 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 140 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 141 | + { label: '标准合同', value: 'STANDARD' } | ||
| 142 | + ] | ||
| 143 | + }, | ||
| 132 | extraCombined() { | 144 | extraCombined() { |
| 133 | return { | 145 | return { |
| 134 | keyword: this.searchKeywordDebounced || undefined, | 146 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -359,10 +371,10 @@ export default { | @@ -359,10 +371,10 @@ export default { | ||
| 359 | margin-bottom: 0; | 371 | margin-bottom: 0; |
| 360 | } | 372 | } |
| 361 | text { | 373 | text { |
| 362 | - width: 60%; | 374 | + width: 50%; |
| 363 | &:last-child { | 375 | &:last-child { |
| 364 | color: rgba(0,0,0,0.9); | 376 | color: rgba(0,0,0,0.9); |
| 365 | - width: 40%; | 377 | + width: 50%; |
| 366 | } | 378 | } |
| 367 | } | 379 | } |
| 368 | } | 380 | } |
| @@ -40,9 +40,30 @@ | @@ -40,9 +40,30 @@ | ||
| 40 | <uni-easyinput v-model="item.quality" placeholder="请输入品质" :clearable="false" disabled /> | 40 | <uni-easyinput v-model="item.quality" placeholder="请输入品质" :clearable="false" disabled /> |
| 41 | </template> | 41 | </template> |
| 42 | </uni-list-item> | 42 | </uni-list-item> |
| 43 | - <uni-list-item title="规格"> | 43 | + <uni-list-item title="规格(mm)"> |
| 44 | <template v-slot:footer> | 44 | <template v-slot:footer> |
| 45 | - <uni-easyinput v-model="item.specDisplay" placeholder="自动拼接规格" :clearable="false" disabled /> | 45 | + <!-- <uni-easyinput v-model="item.specDisplay" placeholder="自动拼接规格" :clearable="false" disabled /> --> |
| 46 | + <view class="value value-spec"> | ||
| 47 | + <view v-if="item.thickness" class="value-spec_val">{{ item.thickness }}</view> | ||
| 48 | + <view v-if="item.thickness" class="value-spec_box"> | ||
| 49 | + <view v-if="item.thicknessTolPos" class="value-spec_box_1">+{{ item.thicknessTolPos }} | ||
| 50 | + </view> | ||
| 51 | + <view v-if="item.thicknessTolNeg" class="value-spec_box_2">-{{ item.thicknessTolNeg }} | ||
| 52 | + </view> | ||
| 53 | + </view> | ||
| 54 | + <view v-if="item.width" class="value-spec_val p12">*</view> | ||
| 55 | + <view v-if="item.width" class="value-spec_val">{{ item.width }}</view> | ||
| 56 | + <view v-if="item.width" class="value-spec_box"> | ||
| 57 | + <view v-if="item.widthTolPos" class="value-spec_box_1">+{{ item.widthTolPos }}</view> | ||
| 58 | + <view v-if="item.widthTolNeg" class="value-spec_box_2">-{{ item.widthTolNeg }}</view> | ||
| 59 | + </view> | ||
| 60 | + <view v-if="item.length" class="value-spec_val p12">*</view> | ||
| 61 | + <view v-if="item.length" class="value-spec_val">{{ item.length }}</view> | ||
| 62 | + <view v-if="item.length" class="value-spec_box"> | ||
| 63 | + <view v-if="item.lengthTolPos" class="value-spec_box_1">+{{ item.lengthTolPos }}</view> | ||
| 64 | + <view v-if="item.lengthTolNeg" class="value-spec_box_2">-{{ item.lengthTolNeg }}</view> | ||
| 65 | + </view> | ||
| 66 | + </view> | ||
| 46 | </template> | 67 | </template> |
| 47 | </uni-list-item> | 68 | </uni-list-item> |
| 48 | <uni-list-item title="状态"> | 69 | <uni-list-item title="状态"> |
| @@ -699,4 +720,42 @@ export default { | @@ -699,4 +720,42 @@ export default { | ||
| 699 | background: $theme-primary; | 720 | background: $theme-primary; |
| 700 | color: #fff; | 721 | color: #fff; |
| 701 | } | 722 | } |
| 723 | + .value-spec { | ||
| 724 | + height: 48rpx; | ||
| 725 | + display: flex; | ||
| 726 | + align-items: center; | ||
| 727 | + color: #000000; | ||
| 728 | + // justify-content: end; | ||
| 729 | + &_box { | ||
| 730 | + position: relative; | ||
| 731 | + width: 60rpx; | ||
| 732 | + height: 48rpx; | ||
| 733 | + | ||
| 734 | + &_1 { | ||
| 735 | + font-size: 16rpx; | ||
| 736 | + position: absolute; | ||
| 737 | + top: -10rpx; | ||
| 738 | + left: 0; | ||
| 739 | + } | ||
| 740 | + | ||
| 741 | + &_2 { | ||
| 742 | + font-size: 16rpx; | ||
| 743 | + position: absolute; | ||
| 744 | + bottom: -10rpx; | ||
| 745 | + left: 0; | ||
| 746 | + } | ||
| 747 | + } | ||
| 748 | + | ||
| 749 | + &_val { | ||
| 750 | + font-size: 28rpx; | ||
| 751 | + | ||
| 752 | + &.p12 { | ||
| 753 | + padding-right: 12rpx; | ||
| 754 | + } | ||
| 755 | + } | ||
| 756 | + } | ||
| 757 | + .row-spec { | ||
| 758 | + height: 60rpx; | ||
| 759 | + align-items: center; | ||
| 760 | + } | ||
| 702 | </style> | 761 | </style> |
| @@ -123,7 +123,7 @@ | @@ -123,7 +123,7 @@ | ||
| 123 | </uni-list-item> | 123 | </uni-list-item> |
| 124 | <uni-list-item title="备注"> | 124 | <uni-list-item title="备注"> |
| 125 | <template v-slot:footer> | 125 | <template v-slot:footer> |
| 126 | - <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 126 | + <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000" /> |
| 127 | </template> | 127 | </template> |
| 128 | </uni-list-item> | 128 | </uni-list-item> |
| 129 | 129 | ||
| @@ -222,9 +222,9 @@ export default { | @@ -222,9 +222,9 @@ export default { | ||
| 222 | executionStandardName: '', | 222 | executionStandardName: '', |
| 223 | executionStandardRemarks: '', | 223 | executionStandardRemarks: '', |
| 224 | includesPackagingFee: false, | 224 | includesPackagingFee: false, |
| 225 | - includesPackagingFeeName: '', | 225 | + includesPackagingFeeName: '否', |
| 226 | includesTransportFee: false, | 226 | includesTransportFee: false, |
| 227 | - includesTransportFeeName: '', | 227 | + includesTransportFeeName: '否', |
| 228 | unit: '美元、公斤、美元/公斤', | 228 | unit: '美元、公斤、美元/公斤', |
| 229 | totalAmountCapital: '', | 229 | totalAmountCapital: '', |
| 230 | depositInfo: '', | 230 | depositInfo: '', |
| @@ -123,7 +123,7 @@ | @@ -123,7 +123,7 @@ | ||
| 123 | </uni-list-item> | 123 | </uni-list-item> |
| 124 | <uni-list-item title="备注"> | 124 | <uni-list-item title="备注"> |
| 125 | <template v-slot:footer> | 125 | <template v-slot:footer> |
| 126 | - <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 126 | + <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000" /> |
| 127 | </template> | 127 | </template> |
| 128 | </uni-list-item> | 128 | </uni-list-item> |
| 129 | <view class="quality"> | 129 | <view class="quality"> |
| @@ -233,9 +233,9 @@ export default { | @@ -233,9 +233,9 @@ export default { | ||
| 233 | executionStandardName: '', | 233 | executionStandardName: '', |
| 234 | executionStandardRemarks: '', | 234 | executionStandardRemarks: '', |
| 235 | includesPackagingFee: false, | 235 | includesPackagingFee: false, |
| 236 | - includesPackagingFeeName: '', | 236 | + includesPackagingFeeName: '否', |
| 237 | includesTransportFee: false, | 237 | includesTransportFee: false, |
| 238 | - includesTransportFeeName: '', | 238 | + includesTransportFeeName: '否', |
| 239 | unit: '美元、公斤、美元/公斤', | 239 | unit: '美元、公斤、美元/公斤', |
| 240 | totalAmountCapital: '', | 240 | totalAmountCapital: '', |
| 241 | destinationId: [], | 241 | destinationId: [], |
| @@ -4,8 +4,15 @@ | @@ -4,8 +4,15 @@ | ||
| 4 | <view class="detail-page"> | 4 | <view class="detail-page"> |
| 5 | <view class="section"> | 5 | <view class="section"> |
| 6 | <text class="row customer">{{ detail.code }}</text> | 6 | <text class="row customer">{{ detail.code }}</text> |
| 7 | - <view class="row" v-if="detail.status === 'STANDARD' || detail.status === 'FORMAL'"><text class="label">{{ detail.status === 'STANDARD' ? '标准合同' : '正式合同' }}规范性审核状态</text><text class="value"><span class="info-status" :style="detail.standardApprovedName ? getStatusCss(detail.standardApprovedName) : ''" >{{ detail.standardApprovedName || '-' }}</span></text></view> | ||
| 8 | - <view class="row" v-if="detail.status === 'STANDARD'"><text class="label">合同状态</text><text class="value"><span class="info-status" :style="detail.shippingStatusName ? getShippingStatusName(detail.shippingStatusName) : { color: '#000'}" >{{ detail.shippingStatusName || '-' }}</span></text></view> | 7 | + <view class="row" v-if="detail.status === 'STANDARD' || detail.status === 'FORMAL'"> |
| 8 | + <text class="label">{{ detail.status === 'STANDARD' ? '标准合同' : '正式合同' }}规范性审核状态</text> | ||
| 9 | + <text class="value"> | ||
| 10 | + | ||
| 11 | + <span v-if="detail.status === 'STANDARD'" class="info-status" :style="detail.standardApprovedName ? getStatusCss(detail.standardApprovedName) : ''" >{{ detail.standardApprovedName || '-' }}</span> | ||
| 12 | + <span v-if="detail.status === 'FORMAL'" class="info-status" :style="detail.formalApprovedName ? getStatusCss(detail.formalApprovedName) : ''" >{{ detail.formalApprovedName || '-' }}</span> | ||
| 13 | + | ||
| 14 | + </text> | ||
| 15 | + </view> <view class="row" v-if="detail.status === 'STANDARD'"><text class="label">合同状态</text><text class="value"><span class="info-status" :style="detail.shippingStatusName ? getShippingStatusName(detail.shippingStatusName) : { color: '#000'}" >{{ detail.shippingStatusName || '-' }}</span></text></view> | ||
| 9 | <view class="row"><text class="label">供方</text><text class="value">{{ detail.supplierName || '-' | 16 | <view class="row"><text class="label">供方</text><text class="value">{{ detail.supplierName || '-' |
| 10 | }}</text></view> | 17 | }}</text></view> |
| 11 | <view class="row"><text class="label">需方</text><text class="value">{{ detail.buyerName || '-' | 18 | <view class="row"><text class="label">需方</text><text class="value">{{ detail.buyerName || '-' |
| @@ -115,12 +122,12 @@ | @@ -115,12 +122,12 @@ | ||
| 115 | </template> | 122 | </template> |
| 116 | 123 | ||
| 117 | <script> | 124 | <script> |
| 118 | -import { getContractApi, deleteContractApi, uploadFormalContract, uploadStandardContract, uploadSignedContractFile, statusStyle, statusMap } from '@/api/contract' | 125 | +import { getContractApi, deleteContractApi, uploadFormalContract, uploadStandardContract, uploadSignedContractFile, statusStyle, statusMap,showContract } from '@/api/contract' |
| 119 | import ProductRel from './productRel.vue' | 126 | import ProductRel from './productRel.vue' |
| 120 | import DetailButtons from '@/components/detail-buttons/index.vue' | 127 | import DetailButtons from '@/components/detail-buttons/index.vue' |
| 121 | import FileUpload from '@/components/file-upload/index.vue' | 128 | import FileUpload from '@/components/file-upload/index.vue' |
| 122 | import SingleSelectSheet from '@/components/single-select/index.vue' | 129 | import SingleSelectSheet from '@/components/single-select/index.vue' |
| 123 | -import { fillStandardApprovedName } from '@/utils/dic.js' | 130 | +import { fillStandardApprovedName, fillFormalApprovedName } from '@/utils/dic.js' |
| 124 | 131 | ||
| 125 | export default { | 132 | export default { |
| 126 | name: 'ContractForeignUnplanDetail', | 133 | name: 'ContractForeignUnplanDetail', |
| @@ -344,8 +351,10 @@ export default { | @@ -344,8 +351,10 @@ export default { | ||
| 344 | }) | 351 | }) |
| 345 | }, | 352 | }, |
| 346 | onLockApply() { | 353 | onLockApply() { |
| 347 | - uni.navigateTo({ | ||
| 348 | - url: '/pages/contract_foreign_unplan/lock_apply?id=' + this.detail.id || '' | 354 | + showContract(this.detail.id).then(res => { |
| 355 | + uni.navigateTo({ | ||
| 356 | + url: '/pages/contract_foreign_unplan/lock_apply?id=' + this.detail.id || '' | ||
| 357 | + }) | ||
| 349 | }) | 358 | }) |
| 350 | }, | 359 | }, |
| 351 | onEdit() { | 360 | onEdit() { |
| @@ -476,6 +485,7 @@ export default { | @@ -476,6 +485,7 @@ export default { | ||
| 476 | destinationLabel: data.provinceName && data.cityName && data.districtName ? `${data.provinceName} / ${data.cityName} / ${data.districtName}` : '', | 485 | destinationLabel: data.provinceName && data.cityName && data.districtName ? `${data.provinceName} / ${data.cityName} / ${data.districtName}` : '', |
| 477 | } | 486 | } |
| 478 | this.detail = await fillStandardApprovedName(this.detail) | 487 | this.detail = await fillStandardApprovedName(this.detail) |
| 488 | + this.detail = await fillFormalApprovedName(this.detail) | ||
| 479 | const lines = Array.isArray(data.contractDistributorLineList) ? data.contractDistributorLineList : [] | 489 | const lines = Array.isArray(data.contractDistributorLineList) ? data.contractDistributorLineList : [] |
| 480 | this.productList = lines | 490 | this.productList = lines |
| 481 | } catch (e) { | 491 | } catch (e) { |
| @@ -105,13 +105,6 @@ export default { | @@ -105,13 +105,6 @@ export default { | ||
| 105 | return { | 105 | return { |
| 106 | searchKeyword: '', | 106 | searchKeyword: '', |
| 107 | searchKeywordDebounced: '', | 107 | searchKeywordDebounced: '', |
| 108 | - | ||
| 109 | - tabs: [ | ||
| 110 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 111 | - { label: '正式合同', value: 'FORMAL' }, | ||
| 112 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 113 | - { label: '已删除合同', value: 'DELETED' } | ||
| 114 | - ], | ||
| 115 | status: 'DRAFT', | 108 | status: 'DRAFT', |
| 116 | 109 | ||
| 117 | query: { deptId: '', deptName: '', dateRange: [] }, | 110 | query: { deptId: '', deptName: '', dateRange: [] }, |
| @@ -129,6 +122,25 @@ export default { | @@ -129,6 +122,25 @@ export default { | ||
| 129 | } | 122 | } |
| 130 | }, | 123 | }, |
| 131 | computed: { | 124 | computed: { |
| 125 | + roleCodes() { | ||
| 126 | + const g = this.$store && this.$store.getters | ||
| 127 | + return (g && g.roleCodes) || [] | ||
| 128 | + }, | ||
| 129 | + tabs() { | ||
| 130 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 131 | + return [ | ||
| 132 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 133 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 134 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 135 | + { label: '已删除合同', value: 'DELETED' } | ||
| 136 | + ] | ||
| 137 | + } | ||
| 138 | + return [ | ||
| 139 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 140 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 141 | + { label: '标准合同', value: 'STANDARD' } | ||
| 142 | + ] | ||
| 143 | + }, | ||
| 132 | extraCombined() { | 144 | extraCombined() { |
| 133 | return { | 145 | return { |
| 134 | keyword: this.searchKeywordDebounced || undefined, | 146 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -361,10 +373,10 @@ export default { | @@ -361,10 +373,10 @@ export default { | ||
| 361 | margin-bottom: 0; | 373 | margin-bottom: 0; |
| 362 | } | 374 | } |
| 363 | text { | 375 | text { |
| 364 | - width: 60%; | 376 | + width: 50%; |
| 365 | &:last-child { | 377 | &:last-child { |
| 366 | color: rgba(0,0,0,0.9); | 378 | color: rgba(0,0,0,0.9); |
| 367 | - width: 40%; | 379 | + width: 50%; |
| 368 | } | 380 | } |
| 369 | } | 381 | } |
| 370 | } | 382 | } |
| @@ -39,9 +39,30 @@ | @@ -39,9 +39,30 @@ | ||
| 39 | <uni-easyinput v-model="item.quality" placeholder="请输入品质" :clearable="false" disabled /> | 39 | <uni-easyinput v-model="item.quality" placeholder="请输入品质" :clearable="false" disabled /> |
| 40 | </template> | 40 | </template> |
| 41 | </uni-list-item> | 41 | </uni-list-item> |
| 42 | - <uni-list-item title="规格"> | 42 | + <uni-list-item title="规格(mm)"> |
| 43 | <template v-slot:footer> | 43 | <template v-slot:footer> |
| 44 | - <uni-easyinput v-model="item.specDisplay" placeholder="自动拼接规格" :clearable="false" disabled /> | 44 | + <!-- <uni-easyinput v-model="item.specDisplay" placeholder="自动拼接规格" :clearable="false" disabled /> --> |
| 45 | + <view class="value value-spec"> | ||
| 46 | + <view v-if="item.thickness" class="value-spec_val">{{ item.thickness }}</view> | ||
| 47 | + <view v-if="item.thickness" class="value-spec_box"> | ||
| 48 | + <view v-if="item.thicknessTolPos" class="value-spec_box_1">+{{ item.thicknessTolPos }} | ||
| 49 | + </view> | ||
| 50 | + <view v-if="item.thicknessTolNeg" class="value-spec_box_2">-{{ item.thicknessTolNeg }} | ||
| 51 | + </view> | ||
| 52 | + </view> | ||
| 53 | + <view v-if="item.width" class="value-spec_val p12">*</view> | ||
| 54 | + <view v-if="item.width" class="value-spec_val">{{ item.width }}</view> | ||
| 55 | + <view v-if="item.width" class="value-spec_box"> | ||
| 56 | + <view v-if="item.widthTolPos" class="value-spec_box_1">+{{ item.widthTolPos }}</view> | ||
| 57 | + <view v-if="item.widthTolNeg" class="value-spec_box_2">-{{ item.widthTolNeg }}</view> | ||
| 58 | + </view> | ||
| 59 | + <view v-if="item.length" class="value-spec_val p12">*</view> | ||
| 60 | + <view v-if="item.length" class="value-spec_val">{{ item.length }}</view> | ||
| 61 | + <view v-if="item.length" class="value-spec_box"> | ||
| 62 | + <view v-if="item.lengthTolPos" class="value-spec_box_1">+{{ item.lengthTolPos }}</view> | ||
| 63 | + <view v-if="item.lengthTolNeg" class="value-spec_box_2">-{{ item.lengthTolNeg }}</view> | ||
| 64 | + </view> | ||
| 65 | + </view> | ||
| 45 | </template> | 66 | </template> |
| 46 | </uni-list-item> | 67 | </uni-list-item> |
| 47 | <uni-list-item title="状态"> | 68 | <uni-list-item title="状态"> |
| @@ -699,4 +720,42 @@ export default { | @@ -699,4 +720,42 @@ export default { | ||
| 699 | background: $theme-primary; | 720 | background: $theme-primary; |
| 700 | color: #fff; | 721 | color: #fff; |
| 701 | } | 722 | } |
| 723 | +.value-spec { | ||
| 724 | + height: 48rpx; | ||
| 725 | + display: flex; | ||
| 726 | + align-items: center; | ||
| 727 | + color: #000000; | ||
| 728 | + // justify-content: end; | ||
| 729 | + &_box { | ||
| 730 | + position: relative; | ||
| 731 | + width: 60rpx; | ||
| 732 | + height: 48rpx; | ||
| 733 | + | ||
| 734 | + &_1 { | ||
| 735 | + font-size: 16rpx; | ||
| 736 | + position: absolute; | ||
| 737 | + top: -10rpx; | ||
| 738 | + left: 0; | ||
| 739 | + } | ||
| 740 | + | ||
| 741 | + &_2 { | ||
| 742 | + font-size: 16rpx; | ||
| 743 | + position: absolute; | ||
| 744 | + bottom: -10rpx; | ||
| 745 | + left: 0; | ||
| 746 | + } | ||
| 747 | + } | ||
| 748 | + | ||
| 749 | + &_val { | ||
| 750 | + font-size: 28rpx; | ||
| 751 | + | ||
| 752 | + &.p12 { | ||
| 753 | + padding-right: 12rpx; | ||
| 754 | + } | ||
| 755 | + } | ||
| 756 | + } | ||
| 757 | + .row-spec { | ||
| 758 | + height: 60rpx; | ||
| 759 | + align-items: center; | ||
| 760 | + } | ||
| 702 | </style> | 761 | </style> |
| @@ -108,11 +108,13 @@ export default { | @@ -108,11 +108,13 @@ export default { | ||
| 108 | const res = await showContract(this.id) | 108 | const res = await showContract(this.id) |
| 109 | const data = res && res.data ? res.data : {} | 109 | const data = res && res.data ? res.data : {} |
| 110 | this.detail = { | 110 | this.detail = { |
| 111 | + contractId: data.contractId || '', | ||
| 111 | contractCode: data.contractCode || '', | 112 | contractCode: data.contractCode || '', |
| 112 | customerName: data.customerName || '', | 113 | customerName: data.customerName || '', |
| 113 | deptName: data.deptName || '', | 114 | deptName: data.deptName || '', |
| 114 | workshopName: data.workshopName || '', | 115 | workshopName: data.workshopName || '', |
| 115 | orderType: data.orderType || '', | 116 | orderType: data.orderType || '', |
| 117 | + contractTypeCode: data.contractType || '', | ||
| 116 | contractType: data.contractType === 'DRAFT_DIST_AGMT' ? '经销订单' : '外贸订单', | 118 | contractType: data.contractType === 'DRAFT_DIST_AGMT' ? '经销订单' : '外贸订单', |
| 117 | orderDate: (data.orderDate || '').slice(0, 10), | 119 | orderDate: (data.orderDate || '').slice(0, 10), |
| 118 | applicationCount: data.applicationCount || '', | 120 | applicationCount: data.applicationCount || '', |
| @@ -139,6 +141,7 @@ export default { | @@ -139,6 +141,7 @@ export default { | ||
| 139 | if (res.confirm) { | 141 | if (res.confirm) { |
| 140 | specLockDelayApplication({ | 142 | specLockDelayApplication({ |
| 141 | ...this.detail, | 143 | ...this.detail, |
| 144 | + contractType: this.detail.contractTypeCode || '', | ||
| 142 | specLockDate: date, | 145 | specLockDate: date, |
| 143 | delayReason: reason | 146 | delayReason: reason |
| 144 | }).then(res => { | 147 | }).then(res => { |
| @@ -123,7 +123,7 @@ | @@ -123,7 +123,7 @@ | ||
| 123 | </uni-list-item> | 123 | </uni-list-item> |
| 124 | <uni-list-item title="备注"> | 124 | <uni-list-item title="备注"> |
| 125 | <template v-slot:footer> | 125 | <template v-slot:footer> |
| 126 | - <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 126 | + <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000" /> |
| 127 | </template> | 127 | </template> |
| 128 | </uni-list-item> | 128 | </uni-list-item> |
| 129 | 129 | ||
| @@ -222,9 +222,9 @@ export default { | @@ -222,9 +222,9 @@ export default { | ||
| 222 | executionStandardName: '', | 222 | executionStandardName: '', |
| 223 | executionStandardRemarks: '', | 223 | executionStandardRemarks: '', |
| 224 | includesPackagingFee: false, | 224 | includesPackagingFee: false, |
| 225 | - includesPackagingFeeName: '', | 225 | + includesPackagingFeeName: '否', |
| 226 | includesTransportFee: false, | 226 | includesTransportFee: false, |
| 227 | - includesTransportFeeName: '', | 227 | + includesTransportFeeName: '否', |
| 228 | unit: '美元、公斤、美元/公斤', | 228 | unit: '美元、公斤、美元/公斤', |
| 229 | totalAmountCapital: '', | 229 | totalAmountCapital: '', |
| 230 | depositInfo: '', | 230 | depositInfo: '', |
| @@ -317,11 +317,11 @@ export default { | @@ -317,11 +317,11 @@ export default { | ||
| 317 | } | 317 | } |
| 318 | 318 | ||
| 319 | text { | 319 | text { |
| 320 | - width: 60%; | 320 | + width: 50%; |
| 321 | 321 | ||
| 322 | &:last-child { | 322 | &:last-child { |
| 323 | color: rgba(0, 0, 0, 0.9); | 323 | color: rgba(0, 0, 0, 0.9); |
| 324 | - width: 40%; | 324 | + width: 50%; |
| 325 | } | 325 | } |
| 326 | } | 326 | } |
| 327 | } | 327 | } |
| @@ -123,7 +123,7 @@ | @@ -123,7 +123,7 @@ | ||
| 123 | </uni-list-item> | 123 | </uni-list-item> |
| 124 | <uni-list-item title="备注"> | 124 | <uni-list-item title="备注"> |
| 125 | <template v-slot:footer> | 125 | <template v-slot:footer> |
| 126 | - <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 126 | + <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000" /> |
| 127 | </template> | 127 | </template> |
| 128 | </uni-list-item> | 128 | </uni-list-item> |
| 129 | <view class="quality"> | 129 | <view class="quality"> |
| @@ -233,9 +233,9 @@ export default { | @@ -233,9 +233,9 @@ export default { | ||
| 233 | executionStandardName: '', | 233 | executionStandardName: '', |
| 234 | executionStandardRemarks: '', | 234 | executionStandardRemarks: '', |
| 235 | includesPackagingFee: false, | 235 | includesPackagingFee: false, |
| 236 | - includesPackagingFeeName: '', | 236 | + includesPackagingFeeName: '否', |
| 237 | includesTransportFee: false, | 237 | includesTransportFee: false, |
| 238 | - includesTransportFeeName: '', | 238 | + includesTransportFeeName: '否', |
| 239 | unit: '元、公斤、元/公斤', | 239 | unit: '元、公斤、元/公斤', |
| 240 | totalAmountCapital: '', | 240 | totalAmountCapital: '', |
| 241 | destinationId: [], | 241 | destinationId: [], |
| @@ -61,7 +61,7 @@ | @@ -61,7 +61,7 @@ | ||
| 61 | <text>订单总额</text><text class="amount" :style="{ color: '#b67a76' }">{{ item.totalAmountIncludingTax ? '¥' : '' }}{{ formatAmount(item.totalAmountIncludingTax) || '-' }}</text> | 61 | <text>订单总额</text><text class="amount" :style="{ color: '#b67a76' }">{{ item.totalAmountIncludingTax ? '¥' : '' }}{{ formatAmount(item.totalAmountIncludingTax) || '-' }}</text> |
| 62 | </view> | 62 | </view> |
| 63 | <view class="info-row" v-if="item.status === 'STANDARD'"> | 63 | <view class="info-row" v-if="item.status === 'STANDARD'"> |
| 64 | - <text>正式合同规范性审核状态</text><span class="info-status" :style="item.standardApprovedName ? getStatusCss(item.standardApprovedName) : ''">{{ item.standardApprovedName || '-' }}</span> | 64 | + <text>标准合同规范性审核状态</text><span class="info-status" :style="item.standardApprovedName ? getStatusCss(item.standardApprovedName) : ''">{{ item.standardApprovedName || '-' }}</span> |
| 65 | </view> | 65 | </view> |
| 66 | <view class="info-row"> | 66 | <view class="info-row"> |
| 67 | <text>订货日期</text><text>{{ item.orderDate }}</text> | 67 | <text>订货日期</text><text>{{ item.orderDate }}</text> |
| @@ -103,12 +103,6 @@ export default { | @@ -103,12 +103,6 @@ export default { | ||
| 103 | return { | 103 | return { |
| 104 | searchKeyword: '', | 104 | searchKeyword: '', |
| 105 | searchKeywordDebounced: '', | 105 | searchKeywordDebounced: '', |
| 106 | - | ||
| 107 | - tabs: [ | ||
| 108 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 109 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 110 | - { label: '已删除合同', value: 'DELETED' } | ||
| 111 | - ], | ||
| 112 | status: 'DRAFT', | 106 | status: 'DRAFT', |
| 113 | 107 | ||
| 114 | query: { deptId: '', deptName: '', dateRange: [] }, | 108 | query: { deptId: '', deptName: '', dateRange: [] }, |
| @@ -126,6 +120,23 @@ export default { | @@ -126,6 +120,23 @@ export default { | ||
| 126 | } | 120 | } |
| 127 | }, | 121 | }, |
| 128 | computed: { | 122 | computed: { |
| 123 | + roleCodes() { | ||
| 124 | + const g = this.$store && this.$store.getters | ||
| 125 | + return (g && g.roleCodes) || [] | ||
| 126 | + }, | ||
| 127 | + tabs() { | ||
| 128 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 129 | + return [ | ||
| 130 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 131 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 132 | + { label: '已删除合同', value: 'DELETED' } | ||
| 133 | + ] | ||
| 134 | + } | ||
| 135 | + return [ | ||
| 136 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 137 | + { label: '标准合同', value: 'STANDARD' } | ||
| 138 | + ] | ||
| 139 | + }, | ||
| 129 | extraCombined() { | 140 | extraCombined() { |
| 130 | return { | 141 | return { |
| 131 | keyword: this.searchKeywordDebounced || undefined, | 142 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -359,10 +370,10 @@ export default { | @@ -359,10 +370,10 @@ export default { | ||
| 359 | margin-bottom: 0; | 370 | margin-bottom: 0; |
| 360 | } | 371 | } |
| 361 | text { | 372 | text { |
| 362 | - width: 60%; | 373 | + width: 50%; |
| 363 | &:last-child { | 374 | &:last-child { |
| 364 | color: rgba(0,0,0,0.9); | 375 | color: rgba(0,0,0,0.9); |
| 365 | - width: 40%; | 376 | + width: 50%; |
| 366 | } | 377 | } |
| 367 | } | 378 | } |
| 368 | } | 379 | } |
| @@ -124,7 +124,7 @@ | @@ -124,7 +124,7 @@ | ||
| 124 | </uni-list-item> | 124 | </uni-list-item> |
| 125 | <uni-list-item title="备注"> | 125 | <uni-list-item title="备注"> |
| 126 | <template v-slot:footer> | 126 | <template v-slot:footer> |
| 127 | - <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 127 | + <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000" /> |
| 128 | </template> | 128 | </template> |
| 129 | </uni-list-item> | 129 | </uni-list-item> |
| 130 | 130 | ||
| @@ -223,9 +223,9 @@ export default { | @@ -223,9 +223,9 @@ export default { | ||
| 223 | executionStandardName: '', | 223 | executionStandardName: '', |
| 224 | executionStandardRemarks: '', | 224 | executionStandardRemarks: '', |
| 225 | includesPackagingFee: false, | 225 | includesPackagingFee: false, |
| 226 | - includesPackagingFeeName: '', | 226 | + includesPackagingFeeName: '否', |
| 227 | includesTransportFee: false, | 227 | includesTransportFee: false, |
| 228 | - includesTransportFeeName: '', | 228 | + includesTransportFeeName: '否', |
| 229 | unit: '元、公斤、元/公斤', | 229 | unit: '元、公斤、元/公斤', |
| 230 | totalAmountCapital: '', | 230 | totalAmountCapital: '', |
| 231 | depositInfo: '', | 231 | depositInfo: '', |
| @@ -123,7 +123,7 @@ | @@ -123,7 +123,7 @@ | ||
| 123 | </uni-list-item> | 123 | </uni-list-item> |
| 124 | <uni-list-item title="备注"> | 124 | <uni-list-item title="备注"> |
| 125 | <template v-slot:footer> | 125 | <template v-slot:footer> |
| 126 | - <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 126 | + <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000" /> |
| 127 | </template> | 127 | </template> |
| 128 | </uni-list-item> | 128 | </uni-list-item> |
| 129 | <view class="quality"> | 129 | <view class="quality"> |
| @@ -233,9 +233,9 @@ export default { | @@ -233,9 +233,9 @@ export default { | ||
| 233 | executionStandardName: '', | 233 | executionStandardName: '', |
| 234 | executionStandardRemarks: '', | 234 | executionStandardRemarks: '', |
| 235 | includesPackagingFee: false, | 235 | includesPackagingFee: false, |
| 236 | - includesPackagingFeeName: '', | 236 | + includesPackagingFeeName: '否', |
| 237 | includesTransportFee: false, | 237 | includesTransportFee: false, |
| 238 | - includesTransportFeeName: '', | 238 | + includesTransportFeeName: '否', |
| 239 | unit: '元、公斤、元/公斤', | 239 | unit: '元、公斤、元/公斤', |
| 240 | totalAmountCapital: '', | 240 | totalAmountCapital: '', |
| 241 | destinationId: [], | 241 | destinationId: [], |
| @@ -61,7 +61,7 @@ | @@ -61,7 +61,7 @@ | ||
| 61 | <text>订单总额</text><text class="amount" :style="{ color: '#b67a76' }">{{ item.totalAmountIncludingTax ? '¥' : '' }}{{ formatAmount(item.totalAmountIncludingTax) || '-' }}</text> | 61 | <text>订单总额</text><text class="amount" :style="{ color: '#b67a76' }">{{ item.totalAmountIncludingTax ? '¥' : '' }}{{ formatAmount(item.totalAmountIncludingTax) || '-' }}</text> |
| 62 | </view> | 62 | </view> |
| 63 | <view class="info-row" v-if="item.status === 'STANDARD'"> | 63 | <view class="info-row" v-if="item.status === 'STANDARD'"> |
| 64 | - <text>正式合同规范性审核状态</text><span class="info-status" :style="item.standardApprovedName ? getStatusCss(item.standardApprovedName) : ''">{{ item.standardApprovedName || '-' }}</span> | 64 | + <text>标准合同规范性审核状态</text><span class="info-status" :style="item.standardApprovedName ? getStatusCss(item.standardApprovedName) : ''">{{ item.standardApprovedName || '-' }}</span> |
| 65 | </view> | 65 | </view> |
| 66 | <view class="info-row"> | 66 | <view class="info-row"> |
| 67 | <text>订货日期</text><text>{{ item.orderDate }}</text> | 67 | <text>订货日期</text><text>{{ item.orderDate }}</text> |
| @@ -103,21 +103,12 @@ export default { | @@ -103,21 +103,12 @@ export default { | ||
| 103 | return { | 103 | return { |
| 104 | searchKeyword: '', | 104 | searchKeyword: '', |
| 105 | searchKeywordDebounced: '', | 105 | searchKeywordDebounced: '', |
| 106 | - | ||
| 107 | - tabs: [ | ||
| 108 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 109 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 110 | - { label: '已删除合同', value: 'DELETED' } | ||
| 111 | - ], | ||
| 112 | status: 'DRAFT', | 106 | status: 'DRAFT', |
| 113 | - | ||
| 114 | query: { deptId: '', deptName: '', dateRange: [] }, | 107 | query: { deptId: '', deptName: '', dateRange: [] }, |
| 115 | extraParams: {}, | 108 | extraParams: {}, |
| 116 | - | ||
| 117 | batchMode: false, | 109 | batchMode: false, |
| 118 | selectedKeys: [], | 110 | selectedKeys: [], |
| 119 | currentItems: [], | 111 | currentItems: [], |
| 120 | - | ||
| 121 | filterVisible: false, | 112 | filterVisible: false, |
| 122 | filterForm: { deptId: '', deptName: '', dateRange: [] }, | 113 | filterForm: { deptId: '', deptName: '', dateRange: [] }, |
| 123 | deptSelectVisible: false, | 114 | deptSelectVisible: false, |
| @@ -126,6 +117,23 @@ export default { | @@ -126,6 +117,23 @@ export default { | ||
| 126 | } | 117 | } |
| 127 | }, | 118 | }, |
| 128 | computed: { | 119 | computed: { |
| 120 | + roleCodes() { | ||
| 121 | + const g = this.$store && this.$store.getters | ||
| 122 | + return (g && g.roleCodes) || [] | ||
| 123 | + }, | ||
| 124 | + tabs() { | ||
| 125 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 126 | + return [ | ||
| 127 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 128 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 129 | + { label: '已删除合同', value: 'DELETED' } | ||
| 130 | + ] | ||
| 131 | + } | ||
| 132 | + return [ | ||
| 133 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 134 | + { label: '标准合同', value: 'STANDARD' } | ||
| 135 | + ] | ||
| 136 | + }, | ||
| 129 | extraCombined() { | 137 | extraCombined() { |
| 130 | return { | 138 | return { |
| 131 | keyword: this.searchKeywordDebounced || undefined, | 139 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -359,10 +367,10 @@ export default { | @@ -359,10 +367,10 @@ export default { | ||
| 359 | margin-bottom: 0; | 367 | margin-bottom: 0; |
| 360 | } | 368 | } |
| 361 | text { | 369 | text { |
| 362 | - width: 60%; | 370 | + width: 50%; |
| 363 | &:last-child { | 371 | &:last-child { |
| 364 | color: rgba(0,0,0,0.9); | 372 | color: rgba(0,0,0,0.9); |
| 365 | - width: 40%; | 373 | + width: 50%; |
| 366 | } | 374 | } |
| 367 | } | 375 | } |
| 368 | } | 376 | } |
| @@ -124,7 +124,7 @@ | @@ -124,7 +124,7 @@ | ||
| 124 | </uni-list-item> | 124 | </uni-list-item> |
| 125 | <uni-list-item title="备注"> | 125 | <uni-list-item title="备注"> |
| 126 | <template v-slot:footer> | 126 | <template v-slot:footer> |
| 127 | - <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 127 | + <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000" /> |
| 128 | </template> | 128 | </template> |
| 129 | </uni-list-item> | 129 | </uni-list-item> |
| 130 | 130 | ||
| @@ -223,9 +223,9 @@ export default { | @@ -223,9 +223,9 @@ export default { | ||
| 223 | executionStandardName: '', | 223 | executionStandardName: '', |
| 224 | executionStandardRemarks: '', | 224 | executionStandardRemarks: '', |
| 225 | includesPackagingFee: false, | 225 | includesPackagingFee: false, |
| 226 | - includesPackagingFeeName: '', | 226 | + includesPackagingFeeName: '否', |
| 227 | includesTransportFee: false, | 227 | includesTransportFee: false, |
| 228 | - includesTransportFeeName: '', | 228 | + includesTransportFeeName: '否', |
| 229 | unit: '元、公斤、元/公斤', | 229 | unit: '元、公斤、元/公斤', |
| 230 | totalAmountCapital: '', | 230 | totalAmountCapital: '', |
| 231 | depositInfo: '', | 231 | depositInfo: '', |
| @@ -123,7 +123,7 @@ | @@ -123,7 +123,7 @@ | ||
| 123 | </uni-list-item> | 123 | </uni-list-item> |
| 124 | <uni-list-item title="备注"> | 124 | <uni-list-item title="备注"> |
| 125 | <template v-slot:footer> | 125 | <template v-slot:footer> |
| 126 | - <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 126 | + <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000" /> |
| 127 | </template> | 127 | </template> |
| 128 | </uni-list-item> | 128 | </uni-list-item> |
| 129 | <view class="quality"> | 129 | <view class="quality"> |
| @@ -233,9 +233,9 @@ export default { | @@ -233,9 +233,9 @@ export default { | ||
| 233 | executionStandardName: '', | 233 | executionStandardName: '', |
| 234 | executionStandardRemarks: '', | 234 | executionStandardRemarks: '', |
| 235 | includesPackagingFee: false, | 235 | includesPackagingFee: false, |
| 236 | - includesPackagingFeeName: '', | 236 | + includesPackagingFeeName: '否', |
| 237 | includesTransportFee: false, | 237 | includesTransportFee: false, |
| 238 | - includesTransportFeeName: '', | 238 | + includesTransportFeeName: '否', |
| 239 | unit: '元、公斤、元/公斤', | 239 | unit: '元、公斤、元/公斤', |
| 240 | totalAmountCapital: '', | 240 | totalAmountCapital: '', |
| 241 | destinationId: [], | 241 | destinationId: [], |
| @@ -4,8 +4,15 @@ | @@ -4,8 +4,15 @@ | ||
| 4 | <view class="detail-page"> | 4 | <view class="detail-page"> |
| 5 | <view class="section"> | 5 | <view class="section"> |
| 6 | <text class="row customer">{{ detail.code }}</text> | 6 | <text class="row customer">{{ detail.code }}</text> |
| 7 | - <view class="row" v-if="detail.status === 'STANDARD' || detail.status === 'FORMAL'"><text class="label">{{ detail.status === 'STANDARD' ? '标准合同' : '正式合同' }}规范性审核状态</text><text class="value"><span class="info-status" :style="detail.standardApprovedName ? getStatusCss(detail.standardApprovedName) : ''" >{{ detail.standardApprovedName || '-' }}</span></text></view> | ||
| 8 | - <view class="row" v-if="detail.status === 'STANDARD'"><text class="label">合同状态</text><text class="value"><span class="info-status" :style="detail.shippingStatusName ? getShippingStatusName(detail.shippingStatusName) : { color: '#000'}" >{{ detail.shippingStatusName || '-' }}</span></text></view> | 7 | + <view class="row" v-if="detail.status === 'STANDARD' || detail.status === 'FORMAL'"> |
| 8 | + <text class="label">{{ detail.status === 'STANDARD' ? '标准合同' : '正式合同' }}规范性审核状态</text> | ||
| 9 | + <text class="value"> | ||
| 10 | + | ||
| 11 | + <span v-if="detail.status === 'STANDARD'" class="info-status" :style="detail.standardApprovedName ? getStatusCss(detail.standardApprovedName) : ''" >{{ detail.standardApprovedName || '-' }}</span> | ||
| 12 | + <span v-if="detail.status === 'FORMAL'" class="info-status" :style="detail.formalApprovedName ? getStatusCss(detail.formalApprovedName) : ''" >{{ detail.formalApprovedName || '-' }}</span> | ||
| 13 | + | ||
| 14 | + </text> | ||
| 15 | + </view> <view class="row" v-if="detail.status === 'STANDARD'"><text class="label">合同状态</text><text class="value"><span class="info-status" :style="detail.shippingStatusName ? getShippingStatusName(detail.shippingStatusName) : { color: '#000'}" >{{ detail.shippingStatusName || '-' }}</span></text></view> | ||
| 9 | <view class="row"><text class="label">供方</text><text class="value">{{ detail.supplierName || '-' | 16 | <view class="row"><text class="label">供方</text><text class="value">{{ detail.supplierName || '-' |
| 10 | }}</text></view> | 17 | }}</text></view> |
| 11 | <view class="row"><text class="label">需方</text><text class="value">{{ detail.buyerName || '-' | 18 | <view class="row"><text class="label">需方</text><text class="value">{{ detail.buyerName || '-' |
| @@ -110,7 +117,7 @@ | @@ -110,7 +117,7 @@ | ||
| 110 | 117 | ||
| 111 | <script> | 118 | <script> |
| 112 | import { getContractApi, deleteContractApi, uploadFormalContract, uploadStandardContract, statusStyle, statusMap } from '@/api/contract' | 119 | import { getContractApi, deleteContractApi, uploadFormalContract, uploadStandardContract, statusStyle, statusMap } from '@/api/contract' |
| 113 | -import { fillStandardApprovedName } from '@/utils/dic.js' | 120 | +import { fillStandardApprovedName, fillFormalApprovedName } from '@/utils/dic.js' |
| 114 | import ProductRel from './productRel.vue' | 121 | import ProductRel from './productRel.vue' |
| 115 | import DetailButtons from '@/components/detail-buttons/index.vue' | 122 | import DetailButtons from '@/components/detail-buttons/index.vue' |
| 116 | import FileUpload from '@/components/file-upload/index.vue' | 123 | import FileUpload from '@/components/file-upload/index.vue' |
| @@ -263,7 +270,7 @@ export default { | @@ -263,7 +270,7 @@ export default { | ||
| 263 | { ...this.buttons[5], visible: (s === 'STANDARD' && a !== 'AUDIT' && a !== 'PASS' && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:standard-upload')) }, | 270 | { ...this.buttons[5], visible: (s === 'STANDARD' && a !== 'AUDIT' && a !== 'PASS' && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:standard-upload')) }, |
| 264 | { ...this.buttons[6], visible: (s === 'FORMAL' && e && t === 'AUDIT' && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:approve')) }, | 271 | { ...this.buttons[6], visible: (s === 'FORMAL' && e && t === 'AUDIT' && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:approve')) }, |
| 265 | { ...this.buttons[7], visible: (s === 'STANDARD' && e && t === 'AUDIT' && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:approve')) }, | 272 | { ...this.buttons[7], visible: (s === 'STANDARD' && e && t === 'AUDIT' && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:approve')) }, |
| 266 | - { ...this.buttons[8], visible: (s === 'STANDARD' && f && a === 'AUDIT' && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:restandard-approveview')) }, | 273 | + { ...this.buttons[8], visible: (s === 'STANDARD' && f && a === 'AUDIT' && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:standard-approve')) }, |
| 267 | { ...this.buttons[9], visible: (s === 'FORMAL' && t && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:review')) }, | 274 | { ...this.buttons[9], visible: (s === 'FORMAL' && t && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:review')) }, |
| 268 | { ...this.buttons[10], visible: (s === 'STANDARD' && t && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:review')) }, | 275 | { ...this.buttons[10], visible: (s === 'STANDARD' && t && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:review')) }, |
| 269 | { ...this.buttons[11], visible: (s === 'STANDARD' && a && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:standard-review')) }, | 276 | { ...this.buttons[11], visible: (s === 'STANDARD' && a && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:standard-review')) }, |
| @@ -436,6 +443,7 @@ export default { | @@ -436,6 +443,7 @@ export default { | ||
| 436 | destinationLabel: data.provinceName && data.cityName && data.districtName ? `${data.provinceName} / ${data.cityName} / ${data.districtName}` : '', | 443 | destinationLabel: data.provinceName && data.cityName && data.districtName ? `${data.provinceName} / ${data.cityName} / ${data.districtName}` : '', |
| 437 | } | 444 | } |
| 438 | this.detail = await fillStandardApprovedName(this.detail) | 445 | this.detail = await fillStandardApprovedName(this.detail) |
| 446 | + this.detail = await fillFormalApprovedName(this.detail) | ||
| 439 | const lines = Array.isArray(data.contractDistributorLineList) ? data.contractDistributorLineList : [] | 447 | const lines = Array.isArray(data.contractDistributorLineList) ? data.contractDistributorLineList : [] |
| 440 | this.productList = lines | 448 | this.productList = lines |
| 441 | } catch (e) { | 449 | } catch (e) { |
| @@ -105,13 +105,6 @@ export default { | @@ -105,13 +105,6 @@ export default { | ||
| 105 | return { | 105 | return { |
| 106 | searchKeyword: '', | 106 | searchKeyword: '', |
| 107 | searchKeywordDebounced: '', | 107 | searchKeywordDebounced: '', |
| 108 | - | ||
| 109 | - tabs: [ | ||
| 110 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 111 | - { label: '正式合同', value: 'FORMAL' }, | ||
| 112 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 113 | - { label: '已删除合同', value: 'DELETED' } | ||
| 114 | - ], | ||
| 115 | status: 'DRAFT', | 108 | status: 'DRAFT', |
| 116 | 109 | ||
| 117 | query: { deptId: '', deptName: '', dateRange: [] }, | 110 | query: { deptId: '', deptName: '', dateRange: [] }, |
| @@ -129,6 +122,25 @@ export default { | @@ -129,6 +122,25 @@ export default { | ||
| 129 | } | 122 | } |
| 130 | }, | 123 | }, |
| 131 | computed: { | 124 | computed: { |
| 125 | + roleCodes() { | ||
| 126 | + const g = this.$store && this.$store.getters | ||
| 127 | + return (g && g.roleCodes) || [] | ||
| 128 | + }, | ||
| 129 | + tabs() { | ||
| 130 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 131 | + return [ | ||
| 132 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 133 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 134 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 135 | + { label: '已删除合同', value: 'DELETED' } | ||
| 136 | + ] | ||
| 137 | + } | ||
| 138 | + return [ | ||
| 139 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 140 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 141 | + { label: '标准合同', value: 'STANDARD' } | ||
| 142 | + ] | ||
| 143 | + }, | ||
| 132 | extraCombined() { | 144 | extraCombined() { |
| 133 | return { | 145 | return { |
| 134 | keyword: this.searchKeywordDebounced || undefined, | 146 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -361,10 +373,10 @@ export default { | @@ -361,10 +373,10 @@ export default { | ||
| 361 | margin-bottom: 0; | 373 | margin-bottom: 0; |
| 362 | } | 374 | } |
| 363 | text { | 375 | text { |
| 364 | - width: 60%; | 376 | + width: 50%; |
| 365 | &:last-child { | 377 | &:last-child { |
| 366 | color: rgba(0,0,0,0.9); | 378 | color: rgba(0,0,0,0.9); |
| 367 | - width: 40%; | 379 | + width: 50%; |
| 368 | } | 380 | } |
| 369 | } | 381 | } |
| 370 | } | 382 | } |
| @@ -40,9 +40,30 @@ | @@ -40,9 +40,30 @@ | ||
| 40 | <uni-easyinput v-model="item.quality" placeholder="请输入品质" :clearable="false" disabled /> | 40 | <uni-easyinput v-model="item.quality" placeholder="请输入品质" :clearable="false" disabled /> |
| 41 | </template> | 41 | </template> |
| 42 | </uni-list-item> | 42 | </uni-list-item> |
| 43 | - <uni-list-item title="规格"> | 43 | + <uni-list-item title="规格(mm)"> |
| 44 | <template v-slot:footer> | 44 | <template v-slot:footer> |
| 45 | - <uni-easyinput v-model="item.specDisplay" placeholder="自动拼接规格" :clearable="false" disabled /> | 45 | + <!-- <uni-easyinput v-model="item.specDisplay" placeholder="自动拼接规格" :clearable="false" disabled /> --> |
| 46 | + <view class="value value-spec"> | ||
| 47 | + <view v-if="item.thickness" class="value-spec_val">{{ item.thickness }}</view> | ||
| 48 | + <view v-if="item.thickness" class="value-spec_box"> | ||
| 49 | + <view v-if="item.thicknessTolPos" class="value-spec_box_1">+{{ item.thicknessTolPos }} | ||
| 50 | + </view> | ||
| 51 | + <view v-if="item.thicknessTolNeg" class="value-spec_box_2">-{{ item.thicknessTolNeg }} | ||
| 52 | + </view> | ||
| 53 | + </view> | ||
| 54 | + <view v-if="item.width" class="value-spec_val p12">*</view> | ||
| 55 | + <view v-if="item.width" class="value-spec_val">{{ item.width }}</view> | ||
| 56 | + <view v-if="item.width" class="value-spec_box"> | ||
| 57 | + <view v-if="item.widthTolPos" class="value-spec_box_1">+{{ item.widthTolPos }}</view> | ||
| 58 | + <view v-if="item.widthTolNeg" class="value-spec_box_2">-{{ item.widthTolNeg }}</view> | ||
| 59 | + </view> | ||
| 60 | + <view v-if="item.length" class="value-spec_val p12">*</view> | ||
| 61 | + <view v-if="item.length" class="value-spec_val">{{ item.length }}</view> | ||
| 62 | + <view v-if="item.length" class="value-spec_box"> | ||
| 63 | + <view v-if="item.lengthTolPos" class="value-spec_box_1">+{{ item.lengthTolPos }}</view> | ||
| 64 | + <view v-if="item.lengthTolNeg" class="value-spec_box_2">-{{ item.lengthTolNeg }}</view> | ||
| 65 | + </view> | ||
| 66 | + </view> | ||
| 46 | </template> | 67 | </template> |
| 47 | </uni-list-item> | 68 | </uni-list-item> |
| 48 | <uni-list-item title="状态"> | 69 | <uni-list-item title="状态"> |
| @@ -699,4 +720,42 @@ export default { | @@ -699,4 +720,42 @@ export default { | ||
| 699 | background: $theme-primary; | 720 | background: $theme-primary; |
| 700 | color: #fff; | 721 | color: #fff; |
| 701 | } | 722 | } |
| 723 | +.value-spec { | ||
| 724 | + height: 48rpx; | ||
| 725 | + display: flex; | ||
| 726 | + align-items: center; | ||
| 727 | + color: #000000; | ||
| 728 | + // justify-content: end; | ||
| 729 | + &_box { | ||
| 730 | + position: relative; | ||
| 731 | + width: 60rpx; | ||
| 732 | + height: 48rpx; | ||
| 733 | + | ||
| 734 | + &_1 { | ||
| 735 | + font-size: 16rpx; | ||
| 736 | + position: absolute; | ||
| 737 | + top: -10rpx; | ||
| 738 | + left: 0; | ||
| 739 | + } | ||
| 740 | + | ||
| 741 | + &_2 { | ||
| 742 | + font-size: 16rpx; | ||
| 743 | + position: absolute; | ||
| 744 | + bottom: -10rpx; | ||
| 745 | + left: 0; | ||
| 746 | + } | ||
| 747 | + } | ||
| 748 | + | ||
| 749 | + &_val { | ||
| 750 | + font-size: 28rpx; | ||
| 751 | + | ||
| 752 | + &.p12 { | ||
| 753 | + padding-right: 12rpx; | ||
| 754 | + } | ||
| 755 | + } | ||
| 756 | + } | ||
| 757 | + .row-spec { | ||
| 758 | + height: 60rpx; | ||
| 759 | + align-items: center; | ||
| 760 | + } | ||
| 702 | </style> | 761 | </style> |
| @@ -124,7 +124,7 @@ | @@ -124,7 +124,7 @@ | ||
| 124 | </uni-list-item> | 124 | </uni-list-item> |
| 125 | <uni-list-item title="备注"> | 125 | <uni-list-item title="备注"> |
| 126 | <template v-slot:footer> | 126 | <template v-slot:footer> |
| 127 | - <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 127 | + <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000" /> |
| 128 | </template> | 128 | </template> |
| 129 | </uni-list-item> | 129 | </uni-list-item> |
| 130 | 130 | ||
| @@ -223,9 +223,9 @@ export default { | @@ -223,9 +223,9 @@ export default { | ||
| 223 | executionStandardName: '', | 223 | executionStandardName: '', |
| 224 | executionStandardRemarks: '', | 224 | executionStandardRemarks: '', |
| 225 | includesPackagingFee: false, | 225 | includesPackagingFee: false, |
| 226 | - includesPackagingFeeName: '', | 226 | + includesPackagingFeeName: '否', |
| 227 | includesTransportFee: false, | 227 | includesTransportFee: false, |
| 228 | - includesTransportFeeName: '', | 228 | + includesTransportFeeName: '否', |
| 229 | unit: '元、公斤、元/公斤', | 229 | unit: '元、公斤、元/公斤', |
| 230 | totalAmountCapital: '', | 230 | totalAmountCapital: '', |
| 231 | depositInfo: '', | 231 | depositInfo: '', |
| @@ -339,11 +339,11 @@ export default { | @@ -339,11 +339,11 @@ export default { | ||
| 339 | } | 339 | } |
| 340 | 340 | ||
| 341 | text { | 341 | text { |
| 342 | - width: 60%; | 342 | + width: 50%; |
| 343 | 343 | ||
| 344 | &:last-child { | 344 | &:last-child { |
| 345 | color: rgba(0, 0, 0, 0.9); | 345 | color: rgba(0, 0, 0, 0.9); |
| 346 | - width: 40%; | 346 | + width: 50%; |
| 347 | } | 347 | } |
| 348 | } | 348 | } |
| 349 | } | 349 | } |
| @@ -123,7 +123,7 @@ | @@ -123,7 +123,7 @@ | ||
| 123 | </uni-list-item> | 123 | </uni-list-item> |
| 124 | <uni-list-item title="备注"> | 124 | <uni-list-item title="备注"> |
| 125 | <template v-slot:footer> | 125 | <template v-slot:footer> |
| 126 | - <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 126 | + <uni-easyinput type="textarea" v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000" /> |
| 127 | </template> | 127 | </template> |
| 128 | </uni-list-item> | 128 | </uni-list-item> |
| 129 | <view class="quality"> | 129 | <view class="quality"> |
| @@ -233,9 +233,9 @@ export default { | @@ -233,9 +233,9 @@ export default { | ||
| 233 | executionStandardName: '', | 233 | executionStandardName: '', |
| 234 | executionStandardRemarks: '', | 234 | executionStandardRemarks: '', |
| 235 | includesPackagingFee: false, | 235 | includesPackagingFee: false, |
| 236 | - includesPackagingFeeName: '', | 236 | + includesPackagingFeeName: '否', |
| 237 | includesTransportFee: false, | 237 | includesTransportFee: false, |
| 238 | - includesTransportFeeName: '', | 238 | + includesTransportFeeName: '否', |
| 239 | unit: '元、公斤、元/公斤', | 239 | unit: '元、公斤、元/公斤', |
| 240 | totalAmountCapital: '', | 240 | totalAmountCapital: '', |
| 241 | destinationId: [], | 241 | destinationId: [], |
| @@ -4,7 +4,15 @@ | @@ -4,7 +4,15 @@ | ||
| 4 | <view class="detail-page"> | 4 | <view class="detail-page"> |
| 5 | <view class="section"> | 5 | <view class="section"> |
| 6 | <text class="row customer">{{ detail.code }}</text> | 6 | <text class="row customer">{{ detail.code }}</text> |
| 7 | - <view class="row" v-if="detail.status === 'STANDARD' || detail.status === 'FORMAL'"><text class="label">{{ detail.status === 'STANDARD' ? '标准合同' : '正式合同' }}规范性审核状态</text><text class="value"><span class="info-status" :style="detail.standardApprovedName ? getStatusCss(detail.standardApprovedName) : ''" >{{ detail.standardApprovedName || '-' }}</span></text></view> | 7 | + <view class="row" v-if="detail.status === 'STANDARD' || detail.status === 'FORMAL'"> |
| 8 | + <text class="label">{{ detail.status === 'STANDARD' ? '标准合同' : '正式合同' }}规范性审核状态</text> | ||
| 9 | + <text class="value"> | ||
| 10 | + | ||
| 11 | + <span v-if="detail.status === 'STANDARD'" class="info-status" :style="detail.standardApprovedName ? getStatusCss(detail.standardApprovedName) : ''" >{{ detail.standardApprovedName || '-' }}</span> | ||
| 12 | + <span v-if="detail.status === 'FORMAL'" class="info-status" :style="detail.formalApprovedName ? getStatusCss(detail.formalApprovedName) : ''" >{{ detail.formalApprovedName || '-' }}</span> | ||
| 13 | + | ||
| 14 | + </text> | ||
| 15 | + </view> | ||
| 8 | <view class="row" v-if="detail.status === 'STANDARD'"><text class="label">合同状态</text><text class="value"><span class="info-status" :style="detail.shippingStatusName ? getShippingStatusName(detail.shippingStatusName) :{ color: '#000'}" >{{ detail.shippingStatusName || '-' }}</span></text></view> | 16 | <view class="row" v-if="detail.status === 'STANDARD'"><text class="label">合同状态</text><text class="value"><span class="info-status" :style="detail.shippingStatusName ? getShippingStatusName(detail.shippingStatusName) :{ color: '#000'}" >{{ detail.shippingStatusName || '-' }}</span></text></view> |
| 9 | <view class="row"><text class="label">供方</text><text class="value">{{ detail.supplierName || '-' | 17 | <view class="row"><text class="label">供方</text><text class="value">{{ detail.supplierName || '-' |
| 10 | }}</text></view> | 18 | }}</text></view> |
| @@ -115,12 +123,12 @@ | @@ -115,12 +123,12 @@ | ||
| 115 | </template> | 123 | </template> |
| 116 | 124 | ||
| 117 | <script> | 125 | <script> |
| 118 | -import { getContractApi, deleteContractApi, uploadFormalContract, statusStyle, uploadStandardContract, statusMap } from '@/api/contract' | 126 | +import { getContractApi, deleteContractApi, uploadFormalContract, statusStyle, uploadStandardContract, statusMap, showContract } from '@/api/contract' |
| 119 | import ProductRel from './productRel.vue' | 127 | import ProductRel from './productRel.vue' |
| 120 | import DetailButtons from '@/components/detail-buttons/index.vue' | 128 | import DetailButtons from '@/components/detail-buttons/index.vue' |
| 121 | import FileUpload from '@/components/file-upload/index.vue' | 129 | import FileUpload from '@/components/file-upload/index.vue' |
| 122 | import SingleSelectSheet from '@/components/single-select/index.vue' | 130 | import SingleSelectSheet from '@/components/single-select/index.vue' |
| 123 | -import { fillStandardApprovedName } from '@/utils/dic.js' | 131 | +import { fillStandardApprovedName, fillFormalApprovedName } from '@/utils/dic.js' |
| 124 | 132 | ||
| 125 | export default { | 133 | export default { |
| 126 | name: 'ContractUnplanDetail', | 134 | name: 'ContractUnplanDetail', |
| @@ -340,8 +348,10 @@ export default { | @@ -340,8 +348,10 @@ export default { | ||
| 340 | }) | 348 | }) |
| 341 | }, | 349 | }, |
| 342 | onLockApply() { | 350 | onLockApply() { |
| 343 | - uni.navigateTo({ | ||
| 344 | - url: '/pages/contract_unplan/lock_apply?id=' + this.detail.id || '' | 351 | + showContract(this.detail.id).then(res => { |
| 352 | + uni.navigateTo({ | ||
| 353 | + url: '/pages/contract_unplan/lock_apply?id=' + this.detail.id || '' | ||
| 354 | + }) | ||
| 345 | }) | 355 | }) |
| 346 | }, | 356 | }, |
| 347 | uploadContract(id, type = 'formal') { | 357 | uploadContract(id, type = 'formal') { |
| @@ -465,6 +475,7 @@ export default { | @@ -465,6 +475,7 @@ export default { | ||
| 465 | destinationLabel: data.provinceName && data.cityName && data.districtName ? `${data.provinceName} / ${data.cityName} / ${data.districtName}` : '', | 475 | destinationLabel: data.provinceName && data.cityName && data.districtName ? `${data.provinceName} / ${data.cityName} / ${data.districtName}` : '', |
| 466 | } | 476 | } |
| 467 | this.detail = await fillStandardApprovedName(this.detail) | 477 | this.detail = await fillStandardApprovedName(this.detail) |
| 478 | + this.detail = await fillFormalApprovedName(this.detail) | ||
| 468 | const lines = Array.isArray(data.contractDistributorLineList) ? data.contractDistributorLineList : [] | 479 | const lines = Array.isArray(data.contractDistributorLineList) ? data.contractDistributorLineList : [] |
| 469 | this.productList = lines | 480 | this.productList = lines |
| 470 | } catch (e) { | 481 | } catch (e) { |
| @@ -105,18 +105,9 @@ export default { | @@ -105,18 +105,9 @@ export default { | ||
| 105 | return { | 105 | return { |
| 106 | searchKeyword: '', | 106 | searchKeyword: '', |
| 107 | searchKeywordDebounced: '', | 107 | searchKeywordDebounced: '', |
| 108 | - | ||
| 109 | - tabs: [ | ||
| 110 | - { label: '草稿合同', value: 'DRAFT' }, | ||
| 111 | - { label: '正式合同', value: 'FORMAL' }, | ||
| 112 | - { label: '标准合同', value: 'STANDARD' }, | ||
| 113 | - { label: '已删除合同', value: 'DELETED' } | ||
| 114 | - ], | ||
| 115 | status: 'DRAFT', | 108 | status: 'DRAFT', |
| 116 | - | ||
| 117 | query: { deptId: '', deptName: '', dateRange: [] }, | 109 | query: { deptId: '', deptName: '', dateRange: [] }, |
| 118 | extraParams: {}, | 110 | extraParams: {}, |
| 119 | - | ||
| 120 | batchMode: false, | 111 | batchMode: false, |
| 121 | selectedKeys: [], | 112 | selectedKeys: [], |
| 122 | currentItems: [], | 113 | currentItems: [], |
| @@ -129,6 +120,25 @@ export default { | @@ -129,6 +120,25 @@ export default { | ||
| 129 | } | 120 | } |
| 130 | }, | 121 | }, |
| 131 | computed: { | 122 | computed: { |
| 123 | + roleCodes() { | ||
| 124 | + const g = this.$store && this.$store.getters | ||
| 125 | + return (g && g.roleCodes) || [] | ||
| 126 | + }, | ||
| 127 | + tabs() { | ||
| 128 | + if (this.roleCodes.includes('constract_admin')) { | ||
| 129 | + return [ | ||
| 130 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 131 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 132 | + { label: '标准合同', value: 'STANDARD' }, | ||
| 133 | + { label: '已删除合同', value: 'DELETED' } | ||
| 134 | + ] | ||
| 135 | + } | ||
| 136 | + return [ | ||
| 137 | + { label: '草稿合同', value: 'DRAFT' }, | ||
| 138 | + { label: '正式合同', value: 'FORMAL' }, | ||
| 139 | + { label: '标准合同', value: 'STANDARD' } | ||
| 140 | + ] | ||
| 141 | + }, | ||
| 132 | extraCombined() { | 142 | extraCombined() { |
| 133 | return { | 143 | return { |
| 134 | keyword: this.searchKeywordDebounced || undefined, | 144 | keyword: this.searchKeywordDebounced || undefined, |
| @@ -363,10 +373,10 @@ export default { | @@ -363,10 +373,10 @@ export default { | ||
| 363 | margin-bottom: 0; | 373 | margin-bottom: 0; |
| 364 | } | 374 | } |
| 365 | text { | 375 | text { |
| 366 | - width: 60%; | 376 | + width: 50%; |
| 367 | &:last-child { | 377 | &:last-child { |
| 368 | color: rgba(0,0,0,0.9); | 378 | color: rgba(0,0,0,0.9); |
| 369 | - width: 40%; | 379 | + width: 50%; |
| 370 | } | 380 | } |
| 371 | } | 381 | } |
| 372 | } | 382 | } |
| @@ -39,9 +39,30 @@ | @@ -39,9 +39,30 @@ | ||
| 39 | <uni-easyinput v-model="item.quality" placeholder="请输入品质" :clearable="false" disabled /> | 39 | <uni-easyinput v-model="item.quality" placeholder="请输入品质" :clearable="false" disabled /> |
| 40 | </template> | 40 | </template> |
| 41 | </uni-list-item> | 41 | </uni-list-item> |
| 42 | - <uni-list-item title="规格"> | 42 | + <uni-list-item title="规格(mm)"> |
| 43 | <template v-slot:footer> | 43 | <template v-slot:footer> |
| 44 | - <uni-easyinput v-model="item.specDisplay" placeholder="自动拼接规格" :clearable="false" disabled /> | 44 | + <!-- <uni-easyinput v-model="item.specDisplay" placeholder="自动拼接规格" :clearable="false" disabled /> --> |
| 45 | + <view class="value value-spec"> | ||
| 46 | + <view v-if="item.thickness" class="value-spec_val">{{ item.thickness }}</view> | ||
| 47 | + <view v-if="item.thickness" class="value-spec_box"> | ||
| 48 | + <view v-if="item.thicknessTolPos" class="value-spec_box_1">+{{ item.thicknessTolPos }} | ||
| 49 | + </view> | ||
| 50 | + <view v-if="item.thicknessTolNeg" class="value-spec_box_2">-{{ item.thicknessTolNeg }} | ||
| 51 | + </view> | ||
| 52 | + </view> | ||
| 53 | + <view v-if="item.width" class="value-spec_val p12">*</view> | ||
| 54 | + <view v-if="item.width" class="value-spec_val">{{ item.width }}</view> | ||
| 55 | + <view v-if="item.width" class="value-spec_box"> | ||
| 56 | + <view v-if="item.widthTolPos" class="value-spec_box_1">+{{ item.widthTolPos }}</view> | ||
| 57 | + <view v-if="item.widthTolNeg" class="value-spec_box_2">-{{ item.widthTolNeg }}</view> | ||
| 58 | + </view> | ||
| 59 | + <view v-if="item.length" class="value-spec_val p12">*</view> | ||
| 60 | + <view v-if="item.length" class="value-spec_val">{{ item.length }}</view> | ||
| 61 | + <view v-if="item.length" class="value-spec_box"> | ||
| 62 | + <view v-if="item.lengthTolPos" class="value-spec_box_1">+{{ item.lengthTolPos }}</view> | ||
| 63 | + <view v-if="item.lengthTolNeg" class="value-spec_box_2">-{{ item.lengthTolNeg }}</view> | ||
| 64 | + </view> | ||
| 65 | + </view> | ||
| 45 | </template> | 66 | </template> |
| 46 | </uni-list-item> | 67 | </uni-list-item> |
| 47 | <uni-list-item title="状态"> | 68 | <uni-list-item title="状态"> |
| @@ -699,4 +720,42 @@ export default { | @@ -699,4 +720,42 @@ export default { | ||
| 699 | background: $theme-primary; | 720 | background: $theme-primary; |
| 700 | color: #fff; | 721 | color: #fff; |
| 701 | } | 722 | } |
| 723 | +.value-spec { | ||
| 724 | + height: 48rpx; | ||
| 725 | + display: flex; | ||
| 726 | + align-items: center; | ||
| 727 | + color: #000000; | ||
| 728 | + // justify-content: end; | ||
| 729 | + &_box { | ||
| 730 | + position: relative; | ||
| 731 | + width: 60rpx; | ||
| 732 | + height: 48rpx; | ||
| 733 | + | ||
| 734 | + &_1 { | ||
| 735 | + font-size: 16rpx; | ||
| 736 | + position: absolute; | ||
| 737 | + top: -10rpx; | ||
| 738 | + left: 0; | ||
| 739 | + } | ||
| 740 | + | ||
| 741 | + &_2 { | ||
| 742 | + font-size: 16rpx; | ||
| 743 | + position: absolute; | ||
| 744 | + bottom: -10rpx; | ||
| 745 | + left: 0; | ||
| 746 | + } | ||
| 747 | + } | ||
| 748 | + | ||
| 749 | + &_val { | ||
| 750 | + font-size: 28rpx; | ||
| 751 | + | ||
| 752 | + &.p12 { | ||
| 753 | + padding-right: 12rpx; | ||
| 754 | + } | ||
| 755 | + } | ||
| 756 | + } | ||
| 757 | + .row-spec { | ||
| 758 | + height: 60rpx; | ||
| 759 | + align-items: center; | ||
| 760 | + } | ||
| 702 | </style> | 761 | </style> |
| @@ -108,11 +108,13 @@ export default { | @@ -108,11 +108,13 @@ export default { | ||
| 108 | const res = await showContract(this.id) | 108 | const res = await showContract(this.id) |
| 109 | const data = res && res.data ? res.data : {} | 109 | const data = res && res.data ? res.data : {} |
| 110 | this.detail = { | 110 | this.detail = { |
| 111 | + contractId: data.contractId || '', | ||
| 111 | contractCode: data.contractCode || '', | 112 | contractCode: data.contractCode || '', |
| 112 | customerName: data.customerName || '', | 113 | customerName: data.customerName || '', |
| 113 | deptName: data.deptName || '', | 114 | deptName: data.deptName || '', |
| 114 | workshopName: data.workshopName || '', | 115 | workshopName: data.workshopName || '', |
| 115 | orderType: data.orderType || '', | 116 | orderType: data.orderType || '', |
| 117 | + contractTypeCode: data.contractType || '', | ||
| 116 | contractType: data.contractType === 'DRAFT_DIST_AGMT' ? '经销订单' : '外贸订单', | 118 | contractType: data.contractType === 'DRAFT_DIST_AGMT' ? '经销订单' : '外贸订单', |
| 117 | orderDate: (data.orderDate || '').slice(0, 10), | 119 | orderDate: (data.orderDate || '').slice(0, 10), |
| 118 | applicationCount: data.applicationCount || '', | 120 | applicationCount: data.applicationCount || '', |
| @@ -139,6 +141,7 @@ export default { | @@ -139,6 +141,7 @@ export default { | ||
| 139 | if (res.confirm) { | 141 | if (res.confirm) { |
| 140 | specLockDelayApplication({ | 142 | specLockDelayApplication({ |
| 141 | ...this.detail, | 143 | ...this.detail, |
| 144 | + contractType: this.detail.contractTypeCode || '', | ||
| 142 | specLockDate: date, | 145 | specLockDate: date, |
| 143 | delayReason: reason | 146 | delayReason: reason |
| 144 | }).then(res => { | 147 | }).then(res => { |
| @@ -124,7 +124,7 @@ | @@ -124,7 +124,7 @@ | ||
| 124 | </uni-list-item> | 124 | </uni-list-item> |
| 125 | <uni-list-item title="备注"> | 125 | <uni-list-item title="备注"> |
| 126 | <template v-slot:footer> | 126 | <template v-slot:footer> |
| 127 | - <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" /> | 127 | + <uni-easyinput v-model="form.remarks" placeholder="请输入备注" :inputBorder="false" maxlength="2000" /> |
| 128 | </template> | 128 | </template> |
| 129 | </uni-list-item> | 129 | </uni-list-item> |
| 130 | 130 | ||
| @@ -223,9 +223,9 @@ export default { | @@ -223,9 +223,9 @@ export default { | ||
| 223 | executionStandardName: '', | 223 | executionStandardName: '', |
| 224 | executionStandardRemarks: '', | 224 | executionStandardRemarks: '', |
| 225 | includesPackagingFee: false, | 225 | includesPackagingFee: false, |
| 226 | - includesPackagingFeeName: '', | 226 | + includesPackagingFeeName: '否', |
| 227 | includesTransportFee: false, | 227 | includesTransportFee: false, |
| 228 | - includesTransportFeeName: '', | 228 | + includesTransportFeeName: '否', |
| 229 | unit: '元、公斤、元/公斤', | 229 | unit: '元、公斤、元/公斤', |
| 230 | totalAmountCapital: '', | 230 | totalAmountCapital: '', |
| 231 | depositInfo: '', | 231 | depositInfo: '', |
| @@ -53,3 +53,9 @@ export async function fillStandardApprovedName(detail = {}) { | @@ -53,3 +53,9 @@ export async function fillStandardApprovedName(detail = {}) { | ||
| 53 | const name = getAuditStatusName(detail && detail.standardApproved, items); | 53 | const name = getAuditStatusName(detail && detail.standardApproved, items); |
| 54 | return { ...detail, standardApprovedName: name }; | 54 | return { ...detail, standardApprovedName: name }; |
| 55 | } | 55 | } |
| 56 | + | ||
| 57 | +export async function fillFormalApprovedName(detail = {}) { | ||
| 58 | + const items = await getAuditStatusOptions(); | ||
| 59 | + const name = getAuditStatusName(detail && detail.formalApproved, items); | ||
| 60 | + return { ...detail, formalApprovedName: name }; | ||
| 61 | +} |