Commit 255bc6f174b682348cda90e76205d34b5ebf4057

Authored by 史婷婷
2 parents 4a7493dd 952d74a9

Merge remote-tracking branch 'origin/cjerp-1.0' into publish_cjerp

... ... @@ -123,7 +123,7 @@
123 123 </uni-list-item>
124 124 <uni-list-item title="备注">
125 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 127 </template>
128 128 </uni-list-item>
129 129 <view class="quality">
... ... @@ -233,10 +233,10 @@ export default {
233 233 executionStandardName: '',
234 234 executionStandardRemarks: '',
235 235 includesPackagingFee: false,
236   - includesPackagingFeeName: '',
  236 + includesPackagingFeeName: '',
237 237 includesTransportFee: false,
238   - includesTransportFeeName: '',
239   - unit: '美元、公斤、元美/公斤',
  238 + includesTransportFeeName: '否',
  239 + unit: '美元、公斤、美元/公斤',
240 240 totalAmountCapital: '',
241 241 destinationId: [],
242 242 destinationLabel: '',
... ...
... ... @@ -215,7 +215,7 @@ export default {
215 215 const t = this.detail.standardApproved || false
216 216 const e = this.detail.standardShowExamine || false
217 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 219 { ...this.buttons[1], visible: (s === 'DRAFT' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:delete')) },
220 220 { ...this.buttons[2], visible: (s !== 'DELETED' && t !== 'AUDIT' && t !== 'PASS' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:upload')) },
221 221 { ...this.buttons[3], visible: (s === 'STANDARD' && this.$auth.hasPermi('contract-manage:foreign-trade-standard-contract:upload-seal')) },
... ...
... ... @@ -61,7 +61,7 @@
61 61 <text>订单总额</text><text class="amount" :style="{ color: '#b67a76' }">{{ item.totalAmountIncludingTax ? '¥' : '' }}{{ formatAmount(item.totalAmountIncludingTax) || '-' }}</text>
62 62 </view>
63 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 65 </view>
66 66 <view class="info-row">
67 67 <text>订货日期</text><text>{{ item.orderDate }}</text>
... ... @@ -104,11 +104,7 @@ export default {
104 104 searchKeyword: '',
105 105 searchKeywordDebounced: '',
106 106
107   - tabs: [
108   - { label: '草稿合同', value: 'DRAFT' },
109   - { label: '标准合同', value: 'STANDARD' },
110   - { label: '已删除合同', value: 'DELETED' }
111   - ],
  107 +
112 108 status: 'DRAFT',
113 109
114 110 query: { deptId: '', deptName: '', dateRange: [] },
... ... @@ -126,6 +122,23 @@ export default {
126 122 }
127 123 },
128 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 142 extraCombined() {
130 143 return {
131 144 keyword: this.searchKeywordDebounced || undefined,
... ... @@ -344,10 +357,10 @@ export default {
344 357 margin-bottom: 0;
345 358 }
346 359 text {
347   - width: 60%;
  360 + width: 50%;
348 361 &:last-child {
349 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 121 </uni-list-item>
122 122 <uni-list-item title="备注">
123 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 125 </template>
126 126 </uni-list-item>
127 127
... ... @@ -220,9 +220,9 @@ export default {
220 220 executionStandardName: '',
221 221 executionStandardRemarks: '',
222 222 includesPackagingFee: false,
223   - includesPackagingFeeName: '',
  223 + includesPackagingFeeName: '',
224 224 includesTransportFee: false,
225   - includesTransportFeeName: '',
  225 + includesTransportFeeName: '',
226 226 unit: '美元、公斤、美元/公斤',
227 227 totalAmountCapital: '',
228 228 depositInfo: '',
... ...
... ... @@ -123,7 +123,7 @@
123 123 </uni-list-item>
124 124 <uni-list-item title="备注">
125 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 127 </template>
128 128 </uni-list-item>
129 129 <view class="quality">
... ... @@ -233,9 +233,9 @@ export default {
233 233 executionStandardName: '',
234 234 executionStandardRemarks: '',
235 235 includesPackagingFee: false,
236   - includesPackagingFeeName: '',
  236 + includesPackagingFeeName: '',
237 237 includesTransportFee: false,
238   - includesTransportFeeName: '',
  238 + includesTransportFeeName: '',
239 239 unit: '美元、公斤、美元/公斤',
240 240 totalAmountCapital: '',
241 241 destinationId: [],
... ...
... ... @@ -4,8 +4,13 @@
4 4 <view class="detail-page">
5 5 <view class="section">
6 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 14 <view class="row"><text class="label">供方</text><text class="value">{{ detail.supplierName || '-'
10 15 }}</text></view>
11 16 <view class="row"><text class="label">需方</text><text class="value">{{ detail.buyerName || '-'
... ... @@ -119,7 +124,7 @@ import ProductRel from './productRel.vue'
119 124 import DetailButtons from '@/components/detail-buttons/index.vue'
120 125 import FileUpload from '@/components/file-upload/index.vue'
121 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 129 export default {
125 130 name: 'ContractForeignStockDetail',
... ... @@ -466,6 +471,7 @@ export default {
466 471 destinationLabel: data.provinceName && data.cityName && data.districtName ? `${data.provinceName} / ${data.cityName} / ${data.districtName}` : '',
467 472 }
468 473 this.detail = await fillStandardApprovedName(this.detail)
  474 + this.detail = await fillFormalApprovedName(this.detail)
469 475 const lines = Array.isArray(data.contractDistributorLineList) ? data.contractDistributorLineList : []
470 476 this.productList = lines
471 477 } catch (e) {
... ...
... ... @@ -105,13 +105,6 @@ export default {
105 105 return {
106 106 searchKeyword: '',
107 107 searchKeywordDebounced: '',
108   -
109   - tabs: [
110   - { label: '草稿合同', value: 'DRAFT' },
111   - { label: '正式合同', value: 'FORMAL' },
112   - { label: '标准合同', value: 'STANDARD' },
113   - { label: '已删除合同', value: 'DELETED' }
114   - ],
115 108 status: 'DRAFT',
116 109
117 110 query: { deptId: '', deptName: '', dateRange: [] },
... ... @@ -129,6 +122,25 @@ export default {
129 122 }
130 123 },
131 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 144 extraCombined() {
133 145 return {
134 146 keyword: this.searchKeywordDebounced || undefined,
... ... @@ -359,10 +371,10 @@ export default {
359 371 margin-bottom: 0;
360 372 }
361 373 text {
362   - width: 60%;
  374 + width: 50%;
363 375 &:last-child {
364 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 40 <uni-easyinput v-model="item.quality" placeholder="请输入品质" :clearable="false" disabled />
41 41 </template>
42 42 </uni-list-item>
43   - <uni-list-item title="规格">
  43 + <uni-list-item title="规格(mm)">
44 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 67 </template>
47 68 </uni-list-item>
48 69 <uni-list-item title="状态">
... ... @@ -699,4 +720,42 @@ export default {
699 720 background: $theme-primary;
700 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 761 </style>
\ No newline at end of file
... ...
... ... @@ -123,7 +123,7 @@
123 123 </uni-list-item>
124 124 <uni-list-item title="备注">
125 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 127 </template>
128 128 </uni-list-item>
129 129
... ... @@ -222,9 +222,9 @@ export default {
222 222 executionStandardName: '',
223 223 executionStandardRemarks: '',
224 224 includesPackagingFee: false,
225   - includesPackagingFeeName: '',
  225 + includesPackagingFeeName: '',
226 226 includesTransportFee: false,
227   - includesTransportFeeName: '',
  227 + includesTransportFeeName: '',
228 228 unit: '美元、公斤、美元/公斤',
229 229 totalAmountCapital: '',
230 230 depositInfo: '',
... ...
... ... @@ -123,7 +123,7 @@
123 123 </uni-list-item>
124 124 <uni-list-item title="备注">
125 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 127 </template>
128 128 </uni-list-item>
129 129 <view class="quality">
... ... @@ -233,9 +233,9 @@ export default {
233 233 executionStandardName: '',
234 234 executionStandardRemarks: '',
235 235 includesPackagingFee: false,
236   - includesPackagingFeeName: '',
  236 + includesPackagingFeeName: '',
237 237 includesTransportFee: false,
238   - includesTransportFeeName: '',
  238 + includesTransportFeeName: '',
239 239 unit: '美元、公斤、美元/公斤',
240 240 totalAmountCapital: '',
241 241 destinationId: [],
... ...
... ... @@ -4,8 +4,15 @@
4 4 <view class="detail-page">
5 5 <view class="section">
6 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 16 <view class="row"><text class="label">供方</text><text class="value">{{ detail.supplierName || '-'
10 17 }}</text></view>
11 18 <view class="row"><text class="label">需方</text><text class="value">{{ detail.buyerName || '-'
... ... @@ -115,12 +122,12 @@
115 122 </template>
116 123
117 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 126 import ProductRel from './productRel.vue'
120 127 import DetailButtons from '@/components/detail-buttons/index.vue'
121 128 import FileUpload from '@/components/file-upload/index.vue'
122 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 132 export default {
126 133 name: 'ContractForeignUnplanDetail',
... ... @@ -344,8 +351,10 @@ export default {
344 351 })
345 352 },
346 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 360 onEdit() {
... ... @@ -476,6 +485,7 @@ export default {
476 485 destinationLabel: data.provinceName && data.cityName && data.districtName ? `${data.provinceName} / ${data.cityName} / ${data.districtName}` : '',
477 486 }
478 487 this.detail = await fillStandardApprovedName(this.detail)
  488 + this.detail = await fillFormalApprovedName(this.detail)
479 489 const lines = Array.isArray(data.contractDistributorLineList) ? data.contractDistributorLineList : []
480 490 this.productList = lines
481 491 } catch (e) {
... ...
... ... @@ -105,13 +105,6 @@ export default {
105 105 return {
106 106 searchKeyword: '',
107 107 searchKeywordDebounced: '',
108   -
109   - tabs: [
110   - { label: '草稿合同', value: 'DRAFT' },
111   - { label: '正式合同', value: 'FORMAL' },
112   - { label: '标准合同', value: 'STANDARD' },
113   - { label: '已删除合同', value: 'DELETED' }
114   - ],
115 108 status: 'DRAFT',
116 109
117 110 query: { deptId: '', deptName: '', dateRange: [] },
... ... @@ -129,6 +122,25 @@ export default {
129 122 }
130 123 },
131 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 144 extraCombined() {
133 145 return {
134 146 keyword: this.searchKeywordDebounced || undefined,
... ... @@ -361,10 +373,10 @@ export default {
361 373 margin-bottom: 0;
362 374 }
363 375 text {
364   - width: 60%;
  376 + width: 50%;
365 377 &:last-child {
366 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 39 <uni-easyinput v-model="item.quality" placeholder="请输入品质" :clearable="false" disabled />
40 40 </template>
41 41 </uni-list-item>
42   - <uni-list-item title="规格">
  42 + <uni-list-item title="规格(mm)">
43 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 66 </template>
46 67 </uni-list-item>
47 68 <uni-list-item title="状态">
... ... @@ -699,4 +720,42 @@ export default {
699 720 background: $theme-primary;
700 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 761 </style>
\ No newline at end of file
... ...
... ... @@ -108,11 +108,13 @@ export default {
108 108 const res = await showContract(this.id)
109 109 const data = res && res.data ? res.data : {}
110 110 this.detail = {
  111 + contractId: data.contractId || '',
111 112 contractCode: data.contractCode || '',
112 113 customerName: data.customerName || '',
113 114 deptName: data.deptName || '',
114 115 workshopName: data.workshopName || '',
115 116 orderType: data.orderType || '',
  117 + contractTypeCode: data.contractType || '',
116 118 contractType: data.contractType === 'DRAFT_DIST_AGMT' ? '经销订单' : '外贸订单',
117 119 orderDate: (data.orderDate || '').slice(0, 10),
118 120 applicationCount: data.applicationCount || '',
... ... @@ -139,6 +141,7 @@ export default {
139 141 if (res.confirm) {
140 142 specLockDelayApplication({
141 143 ...this.detail,
  144 + contractType: this.detail.contractTypeCode || '',
142 145 specLockDate: date,
143 146 delayReason: reason
144 147 }).then(res => {
... ...
... ... @@ -123,7 +123,7 @@
123 123 </uni-list-item>
124 124 <uni-list-item title="备注">
125 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 127 </template>
128 128 </uni-list-item>
129 129
... ... @@ -222,9 +222,9 @@ export default {
222 222 executionStandardName: '',
223 223 executionStandardRemarks: '',
224 224 includesPackagingFee: false,
225   - includesPackagingFeeName: '',
  225 + includesPackagingFeeName: '',
226 226 includesTransportFee: false,
227   - includesTransportFeeName: '',
  227 + includesTransportFeeName: '',
228 228 unit: '美元、公斤、美元/公斤',
229 229 totalAmountCapital: '',
230 230 depositInfo: '',
... ...
... ... @@ -317,11 +317,11 @@ export default {
317 317 }
318 318
319 319 text {
320   - width: 60%;
  320 + width: 50%;
321 321
322 322 &:last-child {
323 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 123 </uni-list-item>
124 124 <uni-list-item title="备注">
125 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 127 </template>
128 128 </uni-list-item>
129 129 <view class="quality">
... ... @@ -233,9 +233,9 @@ export default {
233 233 executionStandardName: '',
234 234 executionStandardRemarks: '',
235 235 includesPackagingFee: false,
236   - includesPackagingFeeName: '',
  236 + includesPackagingFeeName: '',
237 237 includesTransportFee: false,
238   - includesTransportFeeName: '',
  238 + includesTransportFeeName: '',
239 239 unit: '元、公斤、元/公斤',
240 240 totalAmountCapital: '',
241 241 destinationId: [],
... ...
... ... @@ -61,7 +61,7 @@
61 61 <text>订单总额</text><text class="amount" :style="{ color: '#b67a76' }">{{ item.totalAmountIncludingTax ? '¥' : '' }}{{ formatAmount(item.totalAmountIncludingTax) || '-' }}</text>
62 62 </view>
63 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 65 </view>
66 66 <view class="info-row">
67 67 <text>订货日期</text><text>{{ item.orderDate }}</text>
... ... @@ -103,12 +103,6 @@ export default {
103 103 return {
104 104 searchKeyword: '',
105 105 searchKeywordDebounced: '',
106   -
107   - tabs: [
108   - { label: '草稿合同', value: 'DRAFT' },
109   - { label: '标准合同', value: 'STANDARD' },
110   - { label: '已删除合同', value: 'DELETED' }
111   - ],
112 106 status: 'DRAFT',
113 107
114 108 query: { deptId: '', deptName: '', dateRange: [] },
... ... @@ -126,6 +120,23 @@ export default {
126 120 }
127 121 },
128 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 140 extraCombined() {
130 141 return {
131 142 keyword: this.searchKeywordDebounced || undefined,
... ... @@ -359,10 +370,10 @@ export default {
359 370 margin-bottom: 0;
360 371 }
361 372 text {
362   - width: 60%;
  373 + width: 50%;
363 374 &:last-child {
364 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 124 </uni-list-item>
125 125 <uni-list-item title="备注">
126 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 128 </template>
129 129 </uni-list-item>
130 130
... ... @@ -223,9 +223,9 @@ export default {
223 223 executionStandardName: '',
224 224 executionStandardRemarks: '',
225 225 includesPackagingFee: false,
226   - includesPackagingFeeName: '',
  226 + includesPackagingFeeName: '',
227 227 includesTransportFee: false,
228   - includesTransportFeeName: '',
  228 + includesTransportFeeName: '',
229 229 unit: '元、公斤、元/公斤',
230 230 totalAmountCapital: '',
231 231 depositInfo: '',
... ...
... ... @@ -123,7 +123,7 @@
123 123 </uni-list-item>
124 124 <uni-list-item title="备注">
125 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 127 </template>
128 128 </uni-list-item>
129 129 <view class="quality">
... ... @@ -233,9 +233,9 @@ export default {
233 233 executionStandardName: '',
234 234 executionStandardRemarks: '',
235 235 includesPackagingFee: false,
236   - includesPackagingFeeName: '',
  236 + includesPackagingFeeName: '',
237 237 includesTransportFee: false,
238   - includesTransportFeeName: '',
  238 + includesTransportFeeName: '',
239 239 unit: '元、公斤、元/公斤',
240 240 totalAmountCapital: '',
241 241 destinationId: [],
... ...
... ... @@ -61,7 +61,7 @@
61 61 <text>订单总额</text><text class="amount" :style="{ color: '#b67a76' }">{{ item.totalAmountIncludingTax ? '¥' : '' }}{{ formatAmount(item.totalAmountIncludingTax) || '-' }}</text>
62 62 </view>
63 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 65 </view>
66 66 <view class="info-row">
67 67 <text>订货日期</text><text>{{ item.orderDate }}</text>
... ... @@ -103,21 +103,12 @@ export default {
103 103 return {
104 104 searchKeyword: '',
105 105 searchKeywordDebounced: '',
106   -
107   - tabs: [
108   - { label: '草稿合同', value: 'DRAFT' },
109   - { label: '标准合同', value: 'STANDARD' },
110   - { label: '已删除合同', value: 'DELETED' }
111   - ],
112 106 status: 'DRAFT',
113   -
114 107 query: { deptId: '', deptName: '', dateRange: [] },
115 108 extraParams: {},
116   -
117 109 batchMode: false,
118 110 selectedKeys: [],
119 111 currentItems: [],
120   -
121 112 filterVisible: false,
122 113 filterForm: { deptId: '', deptName: '', dateRange: [] },
123 114 deptSelectVisible: false,
... ... @@ -126,6 +117,23 @@ export default {
126 117 }
127 118 },
128 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 137 extraCombined() {
130 138 return {
131 139 keyword: this.searchKeywordDebounced || undefined,
... ... @@ -359,10 +367,10 @@ export default {
359 367 margin-bottom: 0;
360 368 }
361 369 text {
362   - width: 60%;
  370 + width: 50%;
363 371 &:last-child {
364 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 124 </uni-list-item>
125 125 <uni-list-item title="备注">
126 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 128 </template>
129 129 </uni-list-item>
130 130
... ... @@ -223,9 +223,9 @@ export default {
223 223 executionStandardName: '',
224 224 executionStandardRemarks: '',
225 225 includesPackagingFee: false,
226   - includesPackagingFeeName: '',
  226 + includesPackagingFeeName: '',
227 227 includesTransportFee: false,
228   - includesTransportFeeName: '',
  228 + includesTransportFeeName: '',
229 229 unit: '元、公斤、元/公斤',
230 230 totalAmountCapital: '',
231 231 depositInfo: '',
... ...
... ... @@ -123,7 +123,7 @@
123 123 </uni-list-item>
124 124 <uni-list-item title="备注">
125 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 127 </template>
128 128 </uni-list-item>
129 129 <view class="quality">
... ... @@ -233,9 +233,9 @@ export default {
233 233 executionStandardName: '',
234 234 executionStandardRemarks: '',
235 235 includesPackagingFee: false,
236   - includesPackagingFeeName: '',
  236 + includesPackagingFeeName: '',
237 237 includesTransportFee: false,
238   - includesTransportFeeName: '',
  238 + includesTransportFeeName: '',
239 239 unit: '元、公斤、元/公斤',
240 240 totalAmountCapital: '',
241 241 destinationId: [],
... ...
... ... @@ -4,8 +4,15 @@
4 4 <view class="detail-page">
5 5 <view class="section">
6 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 16 <view class="row"><text class="label">供方</text><text class="value">{{ detail.supplierName || '-'
10 17 }}</text></view>
11 18 <view class="row"><text class="label">需方</text><text class="value">{{ detail.buyerName || '-'
... ... @@ -110,7 +117,7 @@
110 117
111 118 <script>
112 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 121 import ProductRel from './productRel.vue'
115 122 import DetailButtons from '@/components/detail-buttons/index.vue'
116 123 import FileUpload from '@/components/file-upload/index.vue'
... ... @@ -263,7 +270,7 @@ export default {
263 270 { ...this.buttons[5], visible: (s === 'STANDARD' && a !== 'AUDIT' && a !== 'PASS' && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:standard-upload')) },
264 271 { ...this.buttons[6], visible: (s === 'FORMAL' && e && t === 'AUDIT' && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:approve')) },
265 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 274 { ...this.buttons[9], visible: (s === 'FORMAL' && t && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:review')) },
268 275 { ...this.buttons[10], visible: (s === 'STANDARD' && t && this.$auth.hasPermi('contract-manage:distribution-inventory-contract:review')) },
269 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 443 destinationLabel: data.provinceName && data.cityName && data.districtName ? `${data.provinceName} / ${data.cityName} / ${data.districtName}` : '',
437 444 }
438 445 this.detail = await fillStandardApprovedName(this.detail)
  446 + this.detail = await fillFormalApprovedName(this.detail)
439 447 const lines = Array.isArray(data.contractDistributorLineList) ? data.contractDistributorLineList : []
440 448 this.productList = lines
441 449 } catch (e) {
... ...
... ... @@ -105,13 +105,6 @@ export default {
105 105 return {
106 106 searchKeyword: '',
107 107 searchKeywordDebounced: '',
108   -
109   - tabs: [
110   - { label: '草稿合同', value: 'DRAFT' },
111   - { label: '正式合同', value: 'FORMAL' },
112   - { label: '标准合同', value: 'STANDARD' },
113   - { label: '已删除合同', value: 'DELETED' }
114   - ],
115 108 status: 'DRAFT',
116 109
117 110 query: { deptId: '', deptName: '', dateRange: [] },
... ... @@ -129,6 +122,25 @@ export default {
129 122 }
130 123 },
131 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 144 extraCombined() {
133 145 return {
134 146 keyword: this.searchKeywordDebounced || undefined,
... ... @@ -361,10 +373,10 @@ export default {
361 373 margin-bottom: 0;
362 374 }
363 375 text {
364   - width: 60%;
  376 + width: 50%;
365 377 &:last-child {
366 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 40 <uni-easyinput v-model="item.quality" placeholder="请输入品质" :clearable="false" disabled />
41 41 </template>
42 42 </uni-list-item>
43   - <uni-list-item title="规格">
  43 + <uni-list-item title="规格(mm)">
44 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 67 </template>
47 68 </uni-list-item>
48 69 <uni-list-item title="状态">
... ... @@ -699,4 +720,42 @@ export default {
699 720 background: $theme-primary;
700 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 761 </style>
\ No newline at end of file
... ...
... ... @@ -124,7 +124,7 @@
124 124 </uni-list-item>
125 125 <uni-list-item title="备注">
126 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 128 </template>
129 129 </uni-list-item>
130 130
... ... @@ -223,9 +223,9 @@ export default {
223 223 executionStandardName: '',
224 224 executionStandardRemarks: '',
225 225 includesPackagingFee: false,
226   - includesPackagingFeeName: '',
  226 + includesPackagingFeeName: '',
227 227 includesTransportFee: false,
228   - includesTransportFeeName: '',
  228 + includesTransportFeeName: '',
229 229 unit: '元、公斤、元/公斤',
230 230 totalAmountCapital: '',
231 231 depositInfo: '',
... ...
... ... @@ -339,11 +339,11 @@ export default {
339 339 }
340 340
341 341 text {
342   - width: 60%;
  342 + width: 50%;
343 343
344 344 &:last-child {
345 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 123 </uni-list-item>
124 124 <uni-list-item title="备注">
125 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 127 </template>
128 128 </uni-list-item>
129 129 <view class="quality">
... ... @@ -233,9 +233,9 @@ export default {
233 233 executionStandardName: '',
234 234 executionStandardRemarks: '',
235 235 includesPackagingFee: false,
236   - includesPackagingFeeName: '',
  236 + includesPackagingFeeName: '',
237 237 includesTransportFee: false,
238   - includesTransportFeeName: '',
  238 + includesTransportFeeName: '',
239 239 unit: '元、公斤、元/公斤',
240 240 totalAmountCapital: '',
241 241 destinationId: [],
... ...
... ... @@ -4,7 +4,15 @@
4 4 <view class="detail-page">
5 5 <view class="section">
6 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 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 17 <view class="row"><text class="label">供方</text><text class="value">{{ detail.supplierName || '-'
10 18 }}</text></view>
... ... @@ -115,12 +123,12 @@
115 123 </template>
116 124
117 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 127 import ProductRel from './productRel.vue'
120 128 import DetailButtons from '@/components/detail-buttons/index.vue'
121 129 import FileUpload from '@/components/file-upload/index.vue'
122 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 133 export default {
126 134 name: 'ContractUnplanDetail',
... ... @@ -340,8 +348,10 @@ export default {
340 348 })
341 349 },
342 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 357 uploadContract(id, type = 'formal') {
... ... @@ -465,6 +475,7 @@ export default {
465 475 destinationLabel: data.provinceName && data.cityName && data.districtName ? `${data.provinceName} / ${data.cityName} / ${data.districtName}` : '',
466 476 }
467 477 this.detail = await fillStandardApprovedName(this.detail)
  478 + this.detail = await fillFormalApprovedName(this.detail)
468 479 const lines = Array.isArray(data.contractDistributorLineList) ? data.contractDistributorLineList : []
469 480 this.productList = lines
470 481 } catch (e) {
... ...
... ... @@ -105,18 +105,9 @@ export default {
105 105 return {
106 106 searchKeyword: '',
107 107 searchKeywordDebounced: '',
108   -
109   - tabs: [
110   - { label: '草稿合同', value: 'DRAFT' },
111   - { label: '正式合同', value: 'FORMAL' },
112   - { label: '标准合同', value: 'STANDARD' },
113   - { label: '已删除合同', value: 'DELETED' }
114   - ],
115 108 status: 'DRAFT',
116   -
117 109 query: { deptId: '', deptName: '', dateRange: [] },
118 110 extraParams: {},
119   -
120 111 batchMode: false,
121 112 selectedKeys: [],
122 113 currentItems: [],
... ... @@ -129,6 +120,25 @@ export default {
129 120 }
130 121 },
131 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 142 extraCombined() {
133 143 return {
134 144 keyword: this.searchKeywordDebounced || undefined,
... ... @@ -363,10 +373,10 @@ export default {
363 373 margin-bottom: 0;
364 374 }
365 375 text {
366   - width: 60%;
  376 + width: 50%;
367 377 &:last-child {
368 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 39 <uni-easyinput v-model="item.quality" placeholder="请输入品质" :clearable="false" disabled />
40 40 </template>
41 41 </uni-list-item>
42   - <uni-list-item title="规格">
  42 + <uni-list-item title="规格(mm)">
43 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 66 </template>
46 67 </uni-list-item>
47 68 <uni-list-item title="状态">
... ... @@ -699,4 +720,42 @@ export default {
699 720 background: $theme-primary;
700 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 761 </style>
\ No newline at end of file
... ...
... ... @@ -108,11 +108,13 @@ export default {
108 108 const res = await showContract(this.id)
109 109 const data = res && res.data ? res.data : {}
110 110 this.detail = {
  111 + contractId: data.contractId || '',
111 112 contractCode: data.contractCode || '',
112 113 customerName: data.customerName || '',
113 114 deptName: data.deptName || '',
114 115 workshopName: data.workshopName || '',
115 116 orderType: data.orderType || '',
  117 + contractTypeCode: data.contractType || '',
116 118 contractType: data.contractType === 'DRAFT_DIST_AGMT' ? '经销订单' : '外贸订单',
117 119 orderDate: (data.orderDate || '').slice(0, 10),
118 120 applicationCount: data.applicationCount || '',
... ... @@ -139,6 +141,7 @@ export default {
139 141 if (res.confirm) {
140 142 specLockDelayApplication({
141 143 ...this.detail,
  144 + contractType: this.detail.contractTypeCode || '',
142 145 specLockDate: date,
143 146 delayReason: reason
144 147 }).then(res => {
... ...
... ... @@ -124,7 +124,7 @@
124 124 </uni-list-item>
125 125 <uni-list-item title="备注">
126 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 128 </template>
129 129 </uni-list-item>
130 130
... ... @@ -223,9 +223,9 @@ export default {
223 223 executionStandardName: '',
224 224 executionStandardRemarks: '',
225 225 includesPackagingFee: false,
226   - includesPackagingFeeName: '',
  226 + includesPackagingFeeName: '',
227 227 includesTransportFee: false,
228   - includesTransportFeeName: '',
  228 + includesTransportFeeName: '',
229 229 unit: '元、公斤、元/公斤',
230 230 totalAmountCapital: '',
231 231 depositInfo: '',
... ...
... ... @@ -53,3 +53,9 @@ export async function fillStandardApprovedName(detail = {}) {
53 53 const name = getAuditStatusName(detail && detail.standardApproved, items);
54 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 +}
... ...