|
@@ -4,7 +4,11 @@
|
|
|
<van-tab title="申购信息">
|
|
|
<div class="common-process-card">
|
|
|
<div class="common-title">申购信息</div>
|
|
|
- <van-form @submit="onSubmit" label-align="top" style="margin-top: 20px">
|
|
|
+ <van-form
|
|
|
+ @submit="onSubmit"
|
|
|
+ label-align="top"
|
|
|
+ style="margin-top: 20px"
|
|
|
+ :readonly="route.query.processType == 10 || route.query.processType == 20">
|
|
|
<van-cell-group inset>
|
|
|
<van-field
|
|
|
v-model="formData.deptName"
|
|
@@ -13,8 +17,7 @@
|
|
|
:label="$t('purchased.procurementDepartment')"
|
|
|
:placeholder="$t('purchased.selectProcurementDepartment')"
|
|
|
:rules="[{ required: true, message: $t('purchased.procurementDepartmentCanNotBeEmpty') }]"
|
|
|
- @click="submitType === 'edit' ? typeModal = false : typeModal = true"
|
|
|
- :readonly="submitType === 'edit'"
|
|
|
+ @click="route.query.processType == 10 || route.query.processType == 20 ? typeModal = false : typeModal = true"
|
|
|
required
|
|
|
/>
|
|
|
<van-popup v-model:show="typeModal" round position="bottom">
|
|
@@ -32,7 +35,6 @@
|
|
|
:placeholder="$t('purchased.pleaseFillInTheProcurementPersonName')"
|
|
|
:rules="[{ required: true, message: $t('purchased.procurementPersonNameCanNotBeEmpty') }]"
|
|
|
required
|
|
|
- :readonly="submitType === 'edit'"
|
|
|
/>
|
|
|
<van-field
|
|
|
v-model="formData.subcribeTime"
|
|
@@ -42,9 +44,8 @@
|
|
|
:label="$t('purchased.procurementTime')"
|
|
|
:placeholder="$t('purchased.clickToSelectTime')"
|
|
|
:rules="[{ required: true, message: $t('purchased.procurementTimeCanNotBeEmpty') }]"
|
|
|
- @click="submitType === 'edit' ? timePicker = false : timePicker = true"
|
|
|
+ @click="route.query.processType == 10 || route.query.processType == 20 ? timePicker = false : timePicker = true"
|
|
|
required
|
|
|
- :readonly="submitType === 'edit'"
|
|
|
/>
|
|
|
<van-popup v-model:show="timePicker" position="bottom">
|
|
|
<van-date-picker
|
|
@@ -60,7 +61,6 @@
|
|
|
:placeholder="$t('purchased.pleaseFillInTheProcurementDescription')"
|
|
|
:rules="[{ required: true, message: $t('purchased.procurementDescriptionCanNotBeEmpty') }]"
|
|
|
required
|
|
|
- :readonly="submitType === 'edit'"
|
|
|
rows="3"
|
|
|
/>
|
|
|
</van-cell-group>
|
|
@@ -73,115 +73,103 @@
|
|
|
<div class="common-process-card">
|
|
|
<div class="common-title">明细</div>
|
|
|
<!-- 明细列表 -->
|
|
|
- <div
|
|
|
- v-for="(item, index) in formData.subscribeDetailList"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
- <div class="commons-delete">
|
|
|
- <div class="title">{{$t('common.details')}}{{ index + 1 }}</div>
|
|
|
- <div
|
|
|
- class="delete"
|
|
|
- @click.native="handleDel(index)"
|
|
|
- v-if="!route.query.id"
|
|
|
- >
|
|
|
- <van-icon name="cross" />
|
|
|
+ <div v-if="route.query.processType != 10 && route.query.processType != 20">
|
|
|
+ <div
|
|
|
+ v-for="(item, index) in formData.subscribeDetailList"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
+ <div class="commons-delete">
|
|
|
+ <div class="title">{{$t('common.details')}}{{ index + 1 }}</div>
|
|
|
+ <div
|
|
|
+ class="delete"
|
|
|
+ @click.native="handleDel(index)"
|
|
|
+ v-if="!route.query.id"
|
|
|
+ >
|
|
|
+ <van-icon name="cross" />
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <van-cell-group inset>
|
|
|
- <van-field
|
|
|
- v-model="formData.subscribeDetailList[index].bussinessName"
|
|
|
- is-link
|
|
|
- readonly
|
|
|
- :label="$t('purchased.procurementProduct')"
|
|
|
- :placeholder="$t('purchased.selectProcurementProduct')"
|
|
|
- :readonly="submitType === 'edit'"
|
|
|
- @click="handleSelect(index)"
|
|
|
- :rules="[
|
|
|
- { required: true, message: $t('purchased.procurementProductCanNotBeEmpty') },
|
|
|
- ]"
|
|
|
- required
|
|
|
- />
|
|
|
- <van-field
|
|
|
- v-model="formData.subscribeDetailList[index].count"
|
|
|
- :label="$t('subscribe.quantity')"
|
|
|
- :placeholder="$t('subscribe.pleaseEnterTheQuantity')"
|
|
|
- :rules="[{ required: true, message: $t('subscribe.quantityCanNotBeEmpty') }]"
|
|
|
- required
|
|
|
- type="number"
|
|
|
- :readonly="submitType === 'edit'"
|
|
|
- />
|
|
|
+ <van-cell-group inset>
|
|
|
+ <van-field
|
|
|
+ v-model="formData.subscribeDetailList[index].bussinessName"
|
|
|
+ is-link
|
|
|
+ readonly
|
|
|
+ :label="$t('purchased.procurementProduct')"
|
|
|
+ :placeholder="$t('purchased.selectProcurementProduct')"
|
|
|
+ :readonly="submitType === 'edit'"
|
|
|
+ @click="handleSelect(index)"
|
|
|
+ :rules="[
|
|
|
+ { required: true, message: $t('purchased.procurementProductCanNotBeEmpty') },
|
|
|
+ ]"
|
|
|
+ required
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.subscribeDetailList[index].count"
|
|
|
+ :label="$t('subscribe.quantity')"
|
|
|
+ :placeholder="$t('subscribe.pleaseEnterTheQuantity')"
|
|
|
+ :rules="[{ required: true, message: $t('subscribe.quantityCanNotBeEmpty') }]"
|
|
|
+ required
|
|
|
+ type="number"
|
|
|
+ :readonly="submitType === 'edit'"
|
|
|
+ />
|
|
|
|
|
|
- <van-field
|
|
|
- v-model="formData.subscribeDetailList[index].content"
|
|
|
- :label="$t('subscribe.cause')"
|
|
|
- :placeholder="$t('subscribe.pleaseEnterTheCause')"
|
|
|
- :rules="[
|
|
|
- { required: true, message: $t('subscribe.causeCanNotBeEmpty') },
|
|
|
- ]"
|
|
|
- :readonly="submitType === 'edit'"
|
|
|
- rows="3"
|
|
|
- type="textarea"
|
|
|
- required
|
|
|
+ <van-field
|
|
|
+ v-model="formData.subscribeDetailList[index].content"
|
|
|
+ :label="$t('subscribe.cause')"
|
|
|
+ :placeholder="$t('subscribe.pleaseEnterTheCause')"
|
|
|
+ :rules="[
|
|
|
+ { required: true, message: $t('subscribe.causeCanNotBeEmpty') },
|
|
|
+ ]"
|
|
|
+ :readonly="submitType === 'edit'"
|
|
|
+ rows="3"
|
|
|
+ type="textarea"
|
|
|
+ required
|
|
|
+ />
|
|
|
+ </van-cell-group>
|
|
|
+ </div>
|
|
|
+ <van-popup v-model:show="typeModalOne" round position="bottom">
|
|
|
+ <van-picker
|
|
|
+ :columns="columnsOne"
|
|
|
+ @cancel="typeModalOne = false"
|
|
|
+ @confirm="(data) => onConfirmOne(data)"
|
|
|
/>
|
|
|
- </van-cell-group>
|
|
|
- </div>
|
|
|
- <van-popup v-model:show="typeModalOne" round position="bottom">
|
|
|
- <van-picker
|
|
|
- :columns="columnsOne"
|
|
|
- @cancel="typeModalOne = false"
|
|
|
- @confirm="(data) => onConfirmOne(data)"
|
|
|
- />
|
|
|
- </van-popup>
|
|
|
- <div class="commons-add-btn" v-if="!route.query.id">
|
|
|
- <van-button
|
|
|
- icon="plus"
|
|
|
- type="default"
|
|
|
- size="small"
|
|
|
- style="margin-top: 10px"
|
|
|
- block
|
|
|
- @click="handleAddRow"
|
|
|
- >{{$t('common.addDetails')}}</van-button
|
|
|
- >
|
|
|
+ </van-popup>
|
|
|
+ <div class="commons-add-btn" v-if="!route.query.id">
|
|
|
+ <van-button
|
|
|
+ icon="plus"
|
|
|
+ type="default"
|
|
|
+ size="small"
|
|
|
+ style="margin-top: 10px"
|
|
|
+ block
|
|
|
+ @click="handleAddRow"
|
|
|
+ >{{$t('common.addDetails')}}</van-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
</div>
|
|
|
<!-- <div style="margin: 16px" v-if="!route.query.id">
|
|
|
<van-button round block type="primary" native-type="submit">
|
|
|
{{$t('common.submit')}}
|
|
|
</van-button>
|
|
|
</div> -->
|
|
|
- <div class="common-mobile-table">
|
|
|
+ <div class="common-mobile-table" v-else>
|
|
|
<table>
|
|
|
<thead>
|
|
|
<tr>
|
|
|
- <th>物料编码</th>
|
|
|
- <th>物料名称</th>
|
|
|
- <th>规格型号</th>
|
|
|
- <th>规格型号</th>
|
|
|
- <th>规格型号</th>
|
|
|
- <th>规格型号</th>
|
|
|
- <th>规格型号</th>
|
|
|
+ <th>申购产品</th>
|
|
|
+ <th>数量</th>
|
|
|
+ <th>事由</th>
|
|
|
</tr>
|
|
|
</thead>
|
|
|
<tbody>
|
|
|
- <tr>
|
|
|
- <td>1000000001</td>
|
|
|
- <td>电脑</td>
|
|
|
- <td>台</td>
|
|
|
- </tr>
|
|
|
- <tr>
|
|
|
- <td>1000000002</td>
|
|
|
- <td>显示器</td>
|
|
|
- <td>台</td>
|
|
|
+ <tr v-for="(i,index) in formData.subscribeDetailList" :key="index">
|
|
|
+ <td>{{ i.name }}</td>
|
|
|
+ <td>{{ i.count }}</td>
|
|
|
+ <td>{{ i.remark }}</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
</van-tab>
|
|
|
- <van-tab title="标签 3">内容 3</van-tab>
|
|
|
- <van-tab title="标签 4">内容 4</van-tab>
|
|
|
- <van-tab title="标签 4">内容 4</van-tab>
|
|
|
- <van-tab title="标签 4">内容 4</van-tab>
|
|
|
</van-tabs>
|
|
|
|
|
|
</div>
|
|
@@ -211,6 +199,12 @@ const formData = ref({
|
|
|
dueDate: '',
|
|
|
subscribeDetailList: [],
|
|
|
})
|
|
|
+
|
|
|
+const active = ref(0)
|
|
|
+const tabsChange = () => {
|
|
|
+ active.value ++
|
|
|
+}
|
|
|
+
|
|
|
const handleAddRow = () => {
|
|
|
console.log(formData.value)
|
|
|
if(!formData.value.subscribeDetailList) formData.value.subscribeDetailList = []
|
|
@@ -347,6 +341,7 @@ const onSubmit = () => {
|
|
|
}
|
|
|
defineExpose({
|
|
|
handleSubmit,
|
|
|
+ tabsChange
|
|
|
});
|
|
|
onMounted(() => {
|
|
|
|