Commit dde2006ab8032e50a6870370894a0996c2170d6c

Authored by 史婷婷
1 parent ef33197f

feat: 订货单-涉及试样订单的功能{

a.子表展示 是否为试样订单(审核--都能修改、审核详情&详情和编辑 都是只读)
b.卡片增加 是否为试样订单 以及筛选
c.详情&编辑&审核&审核详情-主表  增加这个字段展示 布尔值
}
1 1 <?xml version="1.0" encoding="UTF-8"?>
2 2 <project version="4">
3 3 <component name="ChangeListManager">
4   - <list default="true" id="22e3db16-f3f9-44cc-b7ca-0b5f75df2820" name="Changes" comment="" />
  4 + <list default="true" id="22e3db16-f3f9-44cc-b7ca-0b5f75df2820" name="Changes" comment="">
  5 + <change beforePath="$PROJECT_DIR$/pages/order_list/approve.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/order_list/approve.vue" afterDir="false" />
  6 + <change beforePath="$PROJECT_DIR$/pages/order_list/detail.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/order_list/detail.vue" afterDir="false" />
  7 + <change beforePath="$PROJECT_DIR$/pages/order_list/index.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/order_list/index.vue" afterDir="false" />
  8 + <change beforePath="$PROJECT_DIR$/pages/order_list/modify.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/order_list/modify.vue" afterDir="false" />
  9 + <change beforePath="$PROJECT_DIR$/pages/order_list/product.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/order_list/product.vue" afterDir="false" />
  10 + <change beforePath="$PROJECT_DIR$/pages/order_list/viewer.vue" beforeDir="false" afterPath="$PROJECT_DIR$/pages/order_list/viewer.vue" afterDir="false" />
  11 + </list>
5 12 <option name="SHOW_DIALOG" value="false" />
6 13 <option name="HIGHLIGHT_CONFLICTS" value="true" />
7 14 <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
... ...
... ... @@ -55,11 +55,16 @@
55 55 <view class="readonly-text">{{ form.deliveryMethod }}</view>
56 56 </template>
57 57 </uni-list-item>
  58 + <uni-list-item title="是否为试样订单">
  59 + <template v-slot:footer>
  60 + <view class="readonly-text">{{ form.sampleOrder ? '是' : '否' }}</view>
  61 + </template>
  62 + </uni-list-item>
58 63 </view>
59 64
60 65 <!-- 产品 -->
61 66 <view class="section2">
62   - <Product mode="add" :list="initPurchaseOrderLineList" @change="purchaseOrderLineListChange"
  67 + <Product mode="approve" :list="initPurchaseOrderLineList" @change="purchaseOrderLineListChange"
63 68 :orderDate="form.orderDate" />
64 69 </view>
65 70
... ...
... ... @@ -27,6 +27,7 @@
27 27 </view>
28 28 <view class="row"><text class="label">交货方式</text><text class="value">{{ form.deliveryMethod }}</text></view>
29 29 <view class="row"><text class="label">是否冻结</text><text class="value">{{ form.freeze ? '是' : '否' }}</text></view>
  30 + <view class="row"><text class="label">是否为试样订单</text><text class="value">{{ form.sampleOrder ? '是' : '否' }}</text></view>
30 31 </view>
31 32
32 33 <!-- 产品 -->
... ...
... ... @@ -31,6 +31,7 @@
31 31 <view class="info-row"><text>生产厂</text><text>{{ item.workshopName }}</text></view>
32 32 <view class="info-row"><text>办事处</text><text>{{ item.deptName }}</text></view>
33 33 <view class="info-row"><text>订货日期</text><text>{{ item.orderDate }}</text></view>
  34 + <view class="info-row"><text>是否为试样订单</text><text>{{ item.sampleOrder ? '是' : '否' }}</text></view>
34 35 </view>
35 36 </template>
36 37 </CardList>
... ... @@ -65,6 +66,12 @@
65 66 </view>
66 67
67 68 <view class="form-item">
  69 + <view class="label">是否为试样订单</view>
  70 + <uni-data-checkbox mode="tag" :multiple="false" :value-field="'value'" :text-field="'text'"
  71 + v-model="model.sampleOrder" @change="onSampleOrderChange" :localdata="sampleOrderOptions" />
  72 + </view>
  73 +
  74 + <view class="form-item">
68 75 <view class="label">订货日期</view>
69 76 <uni-datetime-picker type="daterange" v-model="model.dateRange" start="2023-01-01" @change="onDateChange($event, model)" />
70 77 </view>
... ... @@ -103,6 +110,7 @@ export default {
103 110 workshopOptions: [],
104 111 statusOptions: [],
105 112 examineStatusOptions: [],
  113 + sampleOrderOptions: [{ text: '是', value: 'true' }, { text: '否', value: 'false' }],
106 114 query: {},
107 115 extraParams: {},
108 116 currentItems: []
... ... @@ -202,6 +210,11 @@ export default {
202 210 const raw = e && e.detail && e.detail.value !== undefined ? e.detail.value : (e && e.value !== undefined ? e.value : '')
203 211 this.filterForm.examineStatus = raw
204 212 },
  213 + onSampleOrderChange(e) {
  214 + const raw = e && e.detail && e.detail.value !== undefined ? e.detail.value : (e && e.value !== undefined ? e.value : '')
  215 + console.log('onSampleOrderChange', raw, typeof raw)
  216 + this.filterForm.sampleOrder = raw;
  217 + },
205 218 onWorkshopChange(e) {
206 219 const raw = e && e.detail && e.detail.value !== undefined ? e.detail.value : (e && e.value !== undefined ? e.value : '')
207 220 this.filterForm.workshopId = raw
... ...
... ... @@ -54,6 +54,11 @@
54 54 <view class="readonly-text">{{ form.deliveryMethod }}</view>
55 55 </template>
56 56 </uni-list-item>
  57 + <uni-list-item title="是否为试样订单">
  58 + <template v-slot:footer>
  59 + <view class="readonly-text">{{ form.sampleOrder ? '是' : '否' }}</view>
  60 + </template>
  61 + </uni-list-item>
57 62 </view>
58 63
59 64 <!-- 产品 -->
... ...
... ... @@ -93,6 +93,91 @@
93 93 </view>
94 94 </view>
95 95
  96 + <view v-else-if="mode === 'approve'" class="section">
  97 + <view v-for="(item, idx) in items" :key="'a-' + idx" class="block">
  98 + <view class="row"><text class="label">行业</text><text class="value">{{ item.industry }}</text></view>
  99 + <view class="row"><text class="label">品质</text><text class="value">{{ item.quality }}</text></view>
  100 + <view class="row"><text class="label">牌号</text><text class="value">{{ item.brand }}</text></view>
  101 +
  102 + <view v-show="!item.collapsed">
  103 + <!-- 厚(公差) * 宽(公差) * 长(公差) -->
  104 + <view class="row row-spec"><text class="label">规格(mm)</text>
  105 + <view class="value value-spec">
  106 + <view v-if="item.thickness" class="value-spec_val">{{ item.thickness }}</view>
  107 + <view v-if="item.thickness" class="value-spec_box">
  108 + <view v-if="item.thicknessTolPos" class="value-spec_box_1">+{{ item.thicknessTolPos }}
  109 + </view>
  110 + <view v-if="item.thicknessTolNeg" class="value-spec_box_2">-{{ item.thicknessTolNeg }}
  111 + </view>
  112 + </view>
  113 + <view v-if="item.width" class="value-spec_val p12">*</view>
  114 + <view v-if="item.width" class="value-spec_val">{{ item.width }}</view>
  115 + <view v-if="item.width" class="value-spec_box">
  116 + <view v-if="item.widthTolPos" class="value-spec_box_1">{{ item.widthTolPos > 0 ? '+' + item.widthTolPos : item.widthTolPos }}</view>
  117 + <view v-if="item.widthTolNeg" class="value-spec_box_2">{{ item.widthTolNeg > 0 ? '+' + item.widthTolNeg : item.widthTolNeg }}</view>
  118 + </view>
  119 + <view v-if="item.length" class="value-spec_val p12">*</view>
  120 + <view v-if="item.length" class="value-spec_val">{{ item.length }}</view>
  121 + <view v-if="item.length" class="value-spec_box">
  122 + <view v-if="item.lengthTolPos" class="value-spec_box_1">{{ item.lengthTolPos > 0 ? '+' + item.lengthTolPos : item.lengthTolPos }}</view>
  123 + <view v-if="item.lengthTolNeg" class="value-spec_box_2">{{ item.lengthTolNeg > 0 ? '+' + item.lengthTolNeg : item.lengthTolNeg }}</view>
  124 + </view>
  125 + </view>
  126 + </view>
  127 + <view class="row"><text class="label">状态</text><text class="value">{{ item.status }}</text></view>
  128 + <view class="row" :class="{ 'noneStyle': !item.showSalesPrice }"><text
  129 + class="label">数量kg</text><text class="value">{{ item.quantity }}</text>
  130 + </view>
  131 + <view class="row" :class="{ 'noneStyle': item.showSalesPrice }" v-if="item.showSalesPrice"><text
  132 + class="label">销售价格</text><text class="value">{{
  133 + item.salesPrice }}</text></view>
  134 + <uni-list class="edit-list">
  135 + <uni-list-item class="amount-item">
  136 + <template v-slot:body>
  137 + <view class="item-title"><text>包装费</text></view>
  138 + </template>
  139 + <template v-slot:footer>
  140 + <view class="amount-row">
  141 + <uni-easyinput type="digit" v-model="item.packagingFee" placeholder="0.00"
  142 + :inputBorder="false"
  143 + @input="onNonNegativeNumberInput($event, item, idx, 'packagingFee')"
  144 + @blur="onNonNegativeNumberBlur(item, idx, 'packagingFee')" />
  145 + <text class="unit">元</text>
  146 + </view>
  147 + </template>
  148 + </uni-list-item>
  149 + <uni-list-item title="发货日期">
  150 + <template v-slot:footer>
  151 + <uni-datetime-picker type="date" v-model="item.deliveryDate" :start="minDeliveryDate"
  152 + @change="onDeliveryChange($event, item, idx)" />
  153 + </template>
  154 + </uni-list-item>
  155 + <uni-list-item title="考核超协">
  156 + <template v-slot:footer>
  157 + <uni-easyinput :disabled="pageType === 'modify'"
  158 + v-model="item.assessmentExceedsAgreement"
  159 + :placeholder="pageType === 'modify' ? '' : '请输入考核超协'" :inputBorder="false" />
  160 + </template>
  161 + </uni-list-item>
  162 + <uni-list-item class="select-item" :class="String(item.sampleOrder) ? 'is-filled' : 'is-empty'" clickable
  163 + @click="openSheet(idx)" :rightText="(item.sampleOrder ? '是' : '否') || '请选择'" showArrow>
  164 + <template v-slot:body>
  165 + <view class="item-title"><text>是否为试样订单</text></view>
  166 + </template>
  167 + </uni-list-item>
  168 + </uni-list>
  169 + </view>
  170 +
  171 + <view class="block-ops">
  172 + <div class="toggle" @click="toggleItem(idx)">
  173 + <image :src="item.collapsed ? '/static/images/up.png' : '/static/images/down.png'"
  174 + class="icon" />
  175 + {{ item.collapsed ? '展开' : '收起' }}
  176 + </div>
  177 + </view>
  178 + </view>
  179 + </view>
  180 +
96 181 <view v-else-if="mode === 'view'" class="view-list" v-show="!collapsedView">
97 182 <view v-for="(item, idx) in items" :key="'v-' + idx" class="card">
98 183 <view class="row"><text class="label">行业</text><text class="value">{{ item.industry }}</text></view>
... ... @@ -135,6 +220,7 @@
135 220 </view>
136 221 <view class="row"><text class="label">考核超协</text><text class="value">{{ item.assessmentExceedsAgreement
137 222 }}</text></view>
  223 + <view class="row"><text class="label">是否为试样订单</text><text class="value">{{ item.sampleOrder ? '是' : '否' }}</text></view>
138 224 </view>
139 225 <view class="view-total">
140 226 <view class="head">合计</view>
... ... @@ -144,12 +230,16 @@
144 230 </view>
145 231 </view>
146 232
  233 + <SingleSelectSheet :visible.sync="sheet.visible" :title="sheet.title" :options="sheet.options" v-model="sheet.value"
  234 + @confirm="onSheetConfirm" />
147 235 </view>
148 236 </template>
149 237 <script>
150 238 import { uuid } from '@/utils/uuid.js'
  239 +import SingleSelectSheet from '@/components/single-select/index.vue'
151 240 export default {
152 241 name: 'Product',
  242 + components: { SingleSelectSheet },
153 243 props: {
154 244 title: { type: String, default: '' },
155 245 mode: { type: String, default: 'add' },
... ... @@ -163,6 +253,7 @@ export default {
163 253 return {
164 254 items: [],
165 255 collapsedView: false,
  256 + sheet: { visible: false, title: '请选择', options: [], value: '', field: '' }
166 257 }
167 258 },
168 259 computed: {
... ... @@ -265,7 +356,22 @@ export default {
265 356 const num = Number(v)
266 357 if (isNaN(num) || num < 0) item[field] = '0'
267 358 if (typeof idx === 'number') this.$set(this.items, idx, { ...item })
268   - }
  359 + },
  360 + openSheet(idx) {
  361 + const item = this.items[idx]
  362 + const options = [{ label: '是', value: true }, { label: '否', value: false }]
  363 + const current = item.sampleOrder
  364 + this.sheet = { visible: true, title: '是否为试样订单', options, idx, value: current }
  365 + },
  366 + onSheetConfirm({ value }) {
  367 + const idx = this.sheet.idx
  368 + if (idx > -1 && this.items[idx]) {
  369 + const item = this.items[idx]
  370 + item.sampleOrder = value
  371 + this.$set(this.items, idx, { ...item })
  372 + }
  373 + this.sheet.visible = false
  374 + },
269 375 }
270 376 }
271 377 </script>
... ...
... ... @@ -16,6 +16,7 @@
16 16 <view class="row"><text class="label">备货单位/人(生产标准)</text><text class="value">{{ form.stockUpCompanyName }}</text></view>
17 17 <view class="row"><text class="label">结算方式或期限</text><text class="value">{{ form.settlementTerms }}</text></view>
18 18 <view class="row"><text class="label">交货方式</text><text class="value">{{ form.deliveryMethod }}</text></view>
  19 + <view class="row"><text class="label">是否为试样订单</text><text class="value">{{ form.sampleOrder ? '是' : '否' }}</text></view>
19 20 </view>
20 21
21 22 <!-- 产品 -->
... ...