|
@@ -1,83 +1,123 @@
|
|
|
<template>
|
|
|
- <div class="form">
|
|
|
- <van-nav-bar title="产品库" left-text="返回" left-arrow @click-left="onClickLeft"> </van-nav-bar>
|
|
|
- <van-form @submit="onSubmit" label-align="top" style="margin-top: 20px; overflow-y: auto">
|
|
|
- <van-cell-group inset>
|
|
|
- <van-field
|
|
|
- v-model="formData.productClassifyName"
|
|
|
- is-link
|
|
|
- readonly
|
|
|
- label="产品分类"
|
|
|
- placeholder="请选择产品分类"
|
|
|
- @click="show = true"
|
|
|
- :rules="[{ required: true, message: '产品分类不能为空' }]"
|
|
|
- required />
|
|
|
- <van-popup v-model:show="show" round position="bottom">
|
|
|
- <van-cascader
|
|
|
- title="请选择产品分类"
|
|
|
- :options="classification"
|
|
|
- :field-names="fieldNames"
|
|
|
- @close="show = false"
|
|
|
- @change="onChange"
|
|
|
- @finish="onFinish" />
|
|
|
- </van-popup>
|
|
|
- <van-field
|
|
|
- v-model="formData.typeName"
|
|
|
- is-link
|
|
|
- readonly
|
|
|
- label="产品类型"
|
|
|
- placeholder="选择产品类型"
|
|
|
- @click="typeModal = true"
|
|
|
- :rules="[{ required: true, message: '产品类型不能为空' }]"
|
|
|
- required />
|
|
|
- <van-popup v-model:show="typeModal" round position="bottom">
|
|
|
- <van-picker :columns="typeList" @cancel="typeModal = false" @confirm="onConfirmType" />
|
|
|
- </van-popup>
|
|
|
- <van-field
|
|
|
- v-model="formData.name"
|
|
|
- name="产品名称"
|
|
|
- label="产品名称"
|
|
|
- placeholder="请填写产品名称"
|
|
|
- :rules="[{ required: true, message: '产品名称不能为空' }]"
|
|
|
- required />
|
|
|
- <van-field
|
|
|
- v-model="formData.spec"
|
|
|
- name="规格型号"
|
|
|
- label="规格型号"
|
|
|
- placeholder="请填写规格型号"
|
|
|
- :rules="[{ required: true, message: '规格型号不能为空' }]"
|
|
|
- required />
|
|
|
- <van-field
|
|
|
- v-model="formData.unit"
|
|
|
- is-link
|
|
|
- readonly
|
|
|
- label="单位"
|
|
|
- placeholder="选择单位"
|
|
|
- @click="unitModal = true"
|
|
|
- :rules="[{ required: true, message: '单位不能为空' }]"
|
|
|
- required />
|
|
|
- <van-popup v-model:show="unitModal" round position="bottom">
|
|
|
- <van-picker :columns="unitList" @cancel="unitModal = false" @confirm="onConfirmUnit" />
|
|
|
- </van-popup>
|
|
|
- <van-field name="uploader" label="文件上传">
|
|
|
- <template #input>
|
|
|
- <van-uploader v-model="fileList" :after-read="afterRead" multiple :max-count="9" :max-size="5 * 1024 * 1024" @oversize="onOversize" />
|
|
|
- </template>
|
|
|
- </van-field>
|
|
|
- <van-field v-model="formData.remark" rows="3" type="textarea" name="备注" label="备注" placeholder="请填写备注" />
|
|
|
- </van-cell-group>
|
|
|
- <div style="margin: 16px">
|
|
|
- <van-button round block type="primary" native-type="submit"> 提交 </van-button>
|
|
|
- </div>
|
|
|
- </van-form>
|
|
|
- </div>
|
|
|
+ <div class="form">
|
|
|
+ <van-nav-bar
|
|
|
+ title="产品库"
|
|
|
+ left-text="返回"
|
|
|
+ left-arrow
|
|
|
+ @click-left="onClickLeft"
|
|
|
+ >
|
|
|
+ </van-nav-bar>
|
|
|
+ <van-form
|
|
|
+ @submit="onSubmit"
|
|
|
+ label-align="top"
|
|
|
+ style="margin-top: 20px; overflow-y: auto"
|
|
|
+ >
|
|
|
+ <van-cell-group inset>
|
|
|
+ <van-field
|
|
|
+ v-model="formData.productClassifyName"
|
|
|
+ is-link
|
|
|
+ readonly
|
|
|
+ label="产品分类"
|
|
|
+ placeholder="请选择产品分类"
|
|
|
+ @click="show = true"
|
|
|
+ :rules="[{ required: true, message: '产品分类不能为空' }]"
|
|
|
+ required
|
|
|
+ />
|
|
|
+ <van-popup v-model:show="show" round position="bottom">
|
|
|
+ <van-cascader
|
|
|
+ title="请选择产品分类"
|
|
|
+ :options="classification"
|
|
|
+ :field-names="fieldNames"
|
|
|
+ @close="show = false"
|
|
|
+ @change="onChange"
|
|
|
+ @finish="onFinish"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+ <van-field
|
|
|
+ v-model="formData.typeName"
|
|
|
+ is-link
|
|
|
+ readonly
|
|
|
+ label="产品类型"
|
|
|
+ placeholder="选择产品类型"
|
|
|
+ @click="typeModal = true"
|
|
|
+ :rules="[{ required: true, message: '产品类型不能为空' }]"
|
|
|
+ required
|
|
|
+ />
|
|
|
+ <van-popup v-model:show="typeModal" round position="bottom">
|
|
|
+ <van-picker
|
|
|
+ :columns="typeList"
|
|
|
+ @cancel="typeModal = false"
|
|
|
+ @confirm="onConfirmType"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+ <van-field
|
|
|
+ v-model="formData.name"
|
|
|
+ name="产品名称"
|
|
|
+ label="产品名称"
|
|
|
+ placeholder="请填写产品名称"
|
|
|
+ :rules="[{ required: true, message: '产品名称不能为空' }]"
|
|
|
+ required
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.spec"
|
|
|
+ name="规格型号"
|
|
|
+ label="规格型号"
|
|
|
+ placeholder="请填写规格型号"
|
|
|
+ :rules="[{ required: true, message: '规格型号不能为空' }]"
|
|
|
+ required
|
|
|
+ />
|
|
|
+ <van-field
|
|
|
+ v-model="formData.unitName"
|
|
|
+ is-link
|
|
|
+ readonly
|
|
|
+ label="单位"
|
|
|
+ placeholder="选择单位"
|
|
|
+ @click="unitModal = true"
|
|
|
+ :rules="[{ required: true, message: '单位不能为空' }]"
|
|
|
+ required
|
|
|
+ />
|
|
|
+ <van-popup v-model:show="unitModal" round position="bottom">
|
|
|
+ <van-picker
|
|
|
+ :columns="unitList"
|
|
|
+ @cancel="unitModal = false"
|
|
|
+ @confirm="onConfirmUnit"
|
|
|
+ />
|
|
|
+ </van-popup>
|
|
|
+ <van-field name="uploader" label="文件上传">
|
|
|
+ <template #input>
|
|
|
+ <van-uploader
|
|
|
+ v-model="fileList"
|
|
|
+ :after-read="afterRead"
|
|
|
+ multiple
|
|
|
+ :max-count="9"
|
|
|
+ :max-size="5 * 1024 * 1024"
|
|
|
+ @oversize="onOversize"
|
|
|
+ />
|
|
|
+ </template>
|
|
|
+ </van-field>
|
|
|
+ <van-field
|
|
|
+ v-model="formData.remark"
|
|
|
+ rows="3"
|
|
|
+ type="textarea"
|
|
|
+ name="备注"
|
|
|
+ label="备注"
|
|
|
+ placeholder="请填写备注"
|
|
|
+ />
|
|
|
+ </van-cell-group>
|
|
|
+ <div style="margin: 16px">
|
|
|
+ <van-button round block type="primary" native-type="submit">
|
|
|
+ 提交
|
|
|
+ </van-button>
|
|
|
+ </div>
|
|
|
+ </van-form>
|
|
|
+ </div>
|
|
|
</template>
|
|
|
|
|
|
<script setup>
|
|
|
import { ref, getCurrentInstance, onMounted } from "vue";
|
|
|
import { showSuccessToast, showToast } from "vant";
|
|
|
import { useRoute } from "vue-router";
|
|
|
-
|
|
|
+import { getUserInfo } from '@/utils/auth';
|
|
|
const proxy = getCurrentInstance().proxy;
|
|
|
const route = useRoute();
|
|
|
const show = ref(false);
|
|
@@ -98,16 +138,26 @@ const typeList = ref([
|
|
|
value: "2",
|
|
|
},
|
|
|
]);
|
|
|
-const unitList = ref([
|
|
|
- {
|
|
|
- text: "个",
|
|
|
- value: "个",
|
|
|
- },
|
|
|
- {
|
|
|
- text: "双",
|
|
|
- value: "双",
|
|
|
- },
|
|
|
-]);
|
|
|
+const unitList = ref([]);
|
|
|
+
|
|
|
+const getDict = () => {
|
|
|
+ proxy
|
|
|
+ .post("/dictTenantData/page", {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 999,
|
|
|
+ tenantId: getUserInfo().tenantId,
|
|
|
+ dictCode: "unit",
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ unitList.value = res.data.rows.map((item, index) => {
|
|
|
+ return {
|
|
|
+ text: item.dictValue,
|
|
|
+ value: item.dictKey,
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+}
|
|
|
+getDict()
|
|
|
const formData = ref({
|
|
|
id: null,
|
|
|
definition: "1",
|
|
@@ -130,6 +180,7 @@ const onConfirmType = ({ selectedOptions }) => {
|
|
|
};
|
|
|
const onConfirmUnit = ({ selectedOptions }) => {
|
|
|
formData.value.unit = selectedOptions[0].value;
|
|
|
+ formData.value.unitName = selectedOptions[0].text;
|
|
|
unitModal.value = false;
|
|
|
};
|
|
|
const onChange = ({ selectedOptions }) => {
|
|
@@ -260,6 +311,8 @@ onMounted(() => {
|
|
|
formData.value.spec = resDetail.data.spec;
|
|
|
formData.value.unit = resDetail.data.unit;
|
|
|
formData.value.remark = resDetail.data.remark;
|
|
|
+ console.log(unitList.value.filter((item) => item.value == resDetail.data.unit))
|
|
|
+ formData.value.unitName = unitList.value.filter((item) => item.value == resDetail.data.unit)[0].text;
|
|
|
});
|
|
|
proxy.post("/fileInfo/getList", { businessIdList: [route.query.id] }).then((res) => {
|
|
|
if (res.data[route.query.id] && res.data[route.query.id].length > 0) {
|