| | |
| | | <script setup> |
| | | import request from "@/utils/request" |
| | | import {onMounted, ref, watch} from "vue"; |
| | | import {onMounted, ref} from "vue"; |
| | | import {useI18n} from "vue-i18n" |
| | | import {ElMessage} from "element-plus" |
| | | import {useRouter,useRoute} from "vue-router" |
| | | import {useRoute, useRouter} from "vue-router" |
| | | |
| | | const { t } = useI18n() |
| | | const router = useRouter() |
| | | const route = useRoute() |
| | | |
| | | let iconWidth=ref(null) |
| | | let iconHeight=ref(null) |
| | | |
| | | let basic = ref({ |
| | | basicType : ['',''], |
| | | input:'', |
| | | nickname:'' |
| | | nickname:null, |
| | | sort:'' |
| | | }) |
| | | let options=ref([ |
| | | { "label": t('orderBasicData.order'), |
| | |
| | | { |
| | | "label": t('orderBasicData.saleMan'), |
| | | "value": "saleMan" |
| | | }, |
| | | { |
| | | "label": t('order.edgingType'), |
| | | "value": "edgingType" |
| | | } |
| | | ] |
| | | }, |
| | |
| | | if(props.rowIndex){ |
| | | basic.value.basicType[0] = props.rowIndex.basicType |
| | | basic.value.basicType[1] = props.rowIndex.basicCategory |
| | | basic.value.input = props.rowIndex.basicName |
| | | basic.value.nickname = props.rowIndex.nickname |
| | | if(basic.value.basicType[1]==="icon"){ |
| | | basic.value.input = props.rowIndex.basicName |
| | | if(props.rowIndex.nickname!=null){ |
| | | basic.value.nickname = JSON.parse(props.rowIndex.nickname).data |
| | | iconWidth.value=JSON.parse(props.rowIndex.nickname).width |
| | | iconHeight.value=JSON.parse(props.rowIndex.nickname).height |
| | | }else{ |
| | | basic.value.nickname = null |
| | | iconWidth.value=null |
| | | iconHeight.value=null |
| | | } |
| | | basic.value.sort = props.rowIndex.sort |
| | | |
| | | }else{ |
| | | basic.value.input = props.rowIndex.basicName |
| | | basic.value.nickname = props.rowIndex.nickname |
| | | basic.value.sort = props.rowIndex.sort |
| | | } |
| | | |
| | | } |
| | | }) |
| | | |
| | | const emit = defineEmits(['gaveParent']) |
| | | const saveBasicData = () =>{ |
| | | console.log(basic.value.basicType[1]) |
| | | if(basic.value.basicType[1]==="hollowThickness"||basic.value.basicType[1]==="stuffThickness"||basic.value.basicType[1]==="InterlayerThickness"){ |
| | | if(!basic.value.input.includes("mm")){ |
| | | basic.value.input=basic.value.input+"mm" |
| | | } |
| | | } |
| | | console.log(basic.value.input) |
| | | if(basic.value.basicType[1]==="icon"){ |
| | | const regex = /^(?:\d+|\d+\.\d)$/ |
| | | if (!regex.test(iconWidth.value)||!regex.test(iconHeight.value) ) { |
| | | ElMessage.warning(t('basicData.msg.greater0Sec1')) |
| | | return |
| | | } |
| | | let nickname=basic.value.nickname |
| | | let data={ |
| | | width: iconWidth.value, |
| | | height: iconHeight.value, |
| | | data: nickname |
| | | } |
| | | basic.value.nickname=JSON.stringify(data) |
| | | } |
| | | basic.value.input=basic.value.input.trim() |
| | | request.post(`/basicData/addBasicData`, basic.value).then(res => { |
| | | if (res.data) { |
| | | ElMessage.success(t('basicData.msg.saveSuccess')) |
| | |
| | | basic.value.input=basic.value.input+"mm" |
| | | } |
| | | } |
| | | if(basic.value.basicType[1]==="icon"){ |
| | | const regex = /^(?:\d+|\d+\.\d)$/ |
| | | if (!regex.test(iconWidth.value)||!regex.test(iconHeight.value) ) { |
| | | ElMessage.warning(t('basicData.msg.greater0Sec1')) |
| | | return |
| | | } |
| | | let nickname=basic.value.nickname |
| | | let data={ |
| | | width: iconWidth.value, |
| | | height: iconHeight.value, |
| | | data: nickname |
| | | } |
| | | basic.value.nickname=JSON.stringify(data) |
| | | } |
| | | let submitArr = props.rowIndex |
| | | submitArr.basicType = basic.value.basicType[0] |
| | | submitArr.basicCategory = basic.value.basicType[1] |
| | | submitArr.basicName = basic.value.input |
| | | submitArr.basicName = basic.value.input.trim() |
| | | submitArr.nickname = basic.value.nickname |
| | | submitArr.sort = basic.value.sort |
| | | |
| | | request.post(`/basicData/updateBasicData`, submitArr).then(res => { |
| | | if (res.data) { |
| | | ElMessage.success(t('basicData.msg.saveSuccess')) |
| | |
| | | ).map((item) =>item.children.filter((item) =>item.value === value[1])) |
| | | } |
| | | |
| | | const changeFile = (file) => { |
| | | const isJPG = file.raw.type === 'image/jpeg' || file.raw.type === 'image/png' ; |
| | | const isLt2M = file.size / 1024 / 1024 < 5; |
| | | |
| | | if (!isJPG) { |
| | | ElMessage.warning(t('orderBasicData.msg2')) |
| | | return |
| | | } |
| | | if (!isLt2M) { |
| | | ElMessage.warning(t('orderBasicData.msg1')) |
| | | return |
| | | } |
| | | |
| | | return new Promise((resolve, reject) => { |
| | | let reader = new FileReader(); |
| | | reader.readAsDataURL(file.raw); |
| | | reader.onload = (e) => { |
| | | resolve(e.target.result); |
| | | basic.value.nickname=e.target.result; |
| | | }; |
| | | }); |
| | | } |
| | | |
| | | |
| | | </script> |
| | | |
| | | <template> |
| | | <div> |
| | | <el-row> |
| | | <el-col :span="4">{{ $t('orderBasicData.basicType') }}:</el-col> |
| | | <el-col :span="4">{{ $t('orderBasicData.page.searchOrderBasicData') }}:</el-col> |
| | | <el-col :span="12"> |
| | | <el-cascader |
| | | v-model="basic.basicType" |
| | | @change="handleChange" |
| | | :options="options" |
| | | clearable |
| | | placeholder="" |
| | | :placeholder="$t('processCard.pleaseSelect')" |
| | | :disabled="props.rowIndex" |
| | | /> |
| | | </el-col> |
| | |
| | | <el-row> |
| | | <el-col :span="4">{{ $t('orderBasicData.alias') }}:</el-col> |
| | | <el-col :span="12"> |
| | | <el-input v-model="basic.nickname"/> |
| | | <el-input v-if="basic.basicType.length>0 && basic.basicType[1]!=='process'" v-model="basic.nickname"/> |
| | | <el-select v-model="basic.nickname" v-else> |
| | | <el-option :label="$t('orderBasicData.commonProcess')" value="" /> |
| | | <el-option :label="$t('orderBasicData.laminatingProcessA')" value="stepA" /> |
| | | <el-option :label="$t('orderBasicData.laminatingProcessB')" value="stepB" /> |
| | | <el-option :label="$t('orderBasicData.laminatingProcessC')" value="stepC" /> |
| | | <el-option :label="$t('orderBasicData.laminatingProcessD')" value="stepD" /> |
| | | |
| | | <!-- <el-option :label="$t('orderBasicData.laminatingProcessC')" value="stepA" />夹胶工序--> |
| | | <!-- <el-option :label="$t('orderBasicData.laminatingProcessA')" value="stepB" />--> |
| | | <!-- <el-option :label="$t('orderBasicData.laminatingProcessD')" value="stepC" />--> |
| | | <!-- <el-option :label="$t('orderBasicData.laminatingProcessB')" value="stepD" />--> |
| | | </el-select> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-if="basic.basicType.length!==0 && basic.basicType[1]==='icon'" > |
| | | <el-col :span="4"> |
| | | {{ $t('order.width') }}: |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-input v-model="iconWidth"/> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-if="basic.basicType.length!==0 && basic.basicType[1]==='icon'" > |
| | | <el-col :span="4"> |
| | | {{ $t('order.height') }}: |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-input v-model="iconHeight"/> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-if="basic.basicType.length!==0 && basic.basicType[1]==='icon'" > |
| | | <el-col :span="4"></el-col> |
| | | <el-col :span="12"> |
| | | <el-upload |
| | | v-model="basic.nickname" |
| | | :limit="1" |
| | | :on-change="changeFile" |
| | | class="upload-demo" |
| | | ref="upload" |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | :file-list="fileList" |
| | | :auto-upload="false"> |
| | | <el-button slot="trigger" size="small" type="primary" >{{ $t('orderBasicData.selectFile') }}</el-button> |
| | | <div slot="tip" class="el-upload__tip">{{ $t('orderBasicData.msg3') }}</div> |
| | | </el-upload> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row v-show="props.rowIndex"> |
| | | <el-col :span="4">{{ $t('processCard.sorting') }}:</el-col> |
| | | <el-col :span="12"> |
| | | <el-input type="number" v-model="basic.sort"/> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |