¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <GlobalWindow :title="title" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm" width="800px" |
| | | v-loading="isUploading"> |
| | | <el-form :model="form" ref="form" label-width="120px" :rules="rules"> |
| | | <div style="font-size: 18px;font-weight: bold; margin-bottom: 10px;">åºæ¬ä¿¡æ¯</div> |
| | | <el-form-item label="åååç§°" prop="name"> |
| | | <el-input v-model="form.name" maxlength="50" placeholder="请è¾å
¥åååç§°ï¼ä¸è¶
è¿50个å" v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="åååç" prop="brandId"> |
| | | <el-select v-model="form.brandId" filterable placeholder="è¯·éæ©ï¼åé"> |
| | | <el-option v-for="item in brandList()" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="ååç±»å«" prop="categoryId"> |
| | | <el-select v-model="form.categoryId" filterable placeholder="è¯·éæ©ï¼åé" @change="categorySelect"> |
| | | <el-option v-for="item in categoryList()" :key="item.id" :label="item.name" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æå¯¼ä»·ï¼å
ï¼" prop="zdPrice"> |
| | | <el-input v-model="form.zdPrice" @input="priceCHANEG(form.zdPrice, 1)" type="number" placeholder="建议å½å
¥æ´æ°ï¼åä½å
" |
| | | v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="å
¥æä»·ï¼å
ï¼" prop="price"> |
| | | <el-input v-model="form.price" @input="priceCHANEG(form.price, 2)" type="number" placeholder="建议å½å
¥æ´æ°ï¼åä½å
" |
| | | v-trim /> |
| | | </el-form-item> |
| | | <el-form-item label="åå主å¾"> |
| | | <UploadAvatarImage :file="{ 'imgurlfull': form.imgfullurl, 'imgurl': form.imgurl }" :uploadData="uploadData" |
| | | tipsLabel="" @uploadSuccess="uploadReverseSuccess" @uploadEnd="isUploading = false" |
| | | @uploadBegin="isUploading = true" /> |
| | | åªè½ä¸ä¼ å¾çæ ¼å¼ï¼pngæ ¼å¼ï¼å»ºè®®å°ºå¯¸140px*140px |
| | | </el-form-item> |
| | | <el-form-item label="ååå¾ç"> |
| | | <UploadImage :fileList="form.multifileList" :uploadData="uploadData" @beginUpload="isUploading = true" @endUpload="isUploading = false" /> |
| | | åªè½ä¸ä¼ å¾çæ ¼å¼ï¼pngæ ¼å¼ï¼å»ºè®®å°ºå¯¸600*600px |
| | | </el-form-item> |
| | | <template v-if="form.baseGoodsParamList && form.baseGoodsParamList.length > 0"> |
| | | <div style="font-size: 18px;font-weight: bold; margin-bottom: 10px;">忰屿§å¼é
ç½® <span |
| | | style="font-size: 13px; font-weight: 500;">æéé
ç½®å½åååç产ååæ°å¼ï¼åä¸ªåæ°å¼ä¸è¶
è¿30个å</span></div> |
| | | <el-form-item :label="item.name" v-for="(item, index) in form.baseGoodsParamList" :key="index"> |
| | | <el-input v-model="item.val" maxlength="30" type="text" placeholder="请è¾å
¥" v-trim /> |
| | | </el-form-item> |
| | | </template> |
| | | </el-form> |
| | | </GlobalWindow> |
| | | </template> |
| | | |
| | | <script> |
| | | import BaseOpera from '@/components/base/BaseOpera' |
| | | import GlobalWindow from '@/components/common/GlobalWindow' |
| | | import UploadAvatarImage from '@/components/common/UploadAvatarImage.vue' |
| | | import UploadImage from '@/components/common/UploadImage.vue' |
| | | import { baseCategory, brand } from '@/api/system/common.js' |
| | | import { companyCreate, companyUpdateById } from '@/api/business/goods.js' |
| | | export default { |
| | | name: 'OperaGoodsWindow', |
| | | extends: BaseOpera, |
| | | components: { GlobalWindow, UploadAvatarImage, UploadImage }, |
| | | data() { |
| | | return { |
| | | action: process.env.VUE_APP_API_PREFIX + '/public/upload', |
| | | name1: '', |
| | | name2: '', |
| | | // è¡¨åæ°æ® |
| | | isUploading: false, |
| | | form: { |
| | | id: null, |
| | | name: '', |
| | | categoryId: '', |
| | | brandId: '', |
| | | zdPrice: '', |
| | | price: '', |
| | | imgurl: '', |
| | | imgfullurl: '', |
| | | multifileList: [], |
| | | baseGoodsParamList: [], |
| | | }, |
| | | uploadData: { |
| | | folder: 'goods_img' |
| | | }, |
| | | // éªè¯è§å |
| | | rules: { |
| | | name: [ |
| | | { required: true, message: 'ä¸è½ä¸ºç©º', trigger: 'blur' } |
| | | ], |
| | | categoryId: [ |
| | | { required: true, message: 'è¯·éæ©', trigger: 'change' } |
| | | ], |
| | | brandId: [ |
| | | { required: true, message: 'è¯·éæ©', trigger: 'change' } |
| | | ], |
| | | zdPrice: [ |
| | | { required: true, message: 'ä¸è½ä¸ºç©º', trigger: 'blur' } |
| | | ], |
| | | price: [ |
| | | { required: true, message: 'ä¸è½ä¸ºç©º', trigger: 'blur' } |
| | | ] |
| | | }, |
| | | options: [] |
| | | } |
| | | }, |
| | | inject: ['categoryList', 'brandList'], |
| | | created() { |
| | | this.config({ |
| | | api: '/business/goods', |
| | | 'field.id': 'id' |
| | | }) |
| | | // this.getbrand() |
| | | // this.getcategory() |
| | | }, |
| | | methods: { |
| | | open(title, target) { |
| | | this.title = title |
| | | this.visible = true |
| | | // æ°å»º |
| | | if (target == null) { |
| | | this.$nextTick(() => { |
| | | this.$refs.form.resetFields() |
| | | this.form.imgurl = '' |
| | | this.form.imgfullurl = '' |
| | | this.form.multifileList = [] |
| | | this.form.baseGoodsParamList = [] |
| | | this.form[this.configData['field.id']] = null |
| | | }) |
| | | return |
| | | } |
| | | // ç¼è¾ |
| | | this.$nextTick(() => { |
| | | for (const key in this.form) { |
| | | this.form[key] = target[key] |
| | | } |
| | | this.form.multifileList.forEach(item => { |
| | | item.url = item.filefullurl |
| | | }) |
| | | }) |
| | | }, |
| | | priceCHANEG(val, type) { |
| | | if (!/^[1-9]+[0-9]*$/.test(val)) { |
| | | this.$message.warning('åªè½è¾å
¥æ£æ´æ°') |
| | | if (type === 1) { |
| | | this.form.zdPrice = '' |
| | | } else { |
| | | this.form.price = '' |
| | | } |
| | | } |
| | | }, |
| | | categorySelect(v) { |
| | | this.categoryList().forEach(item => { |
| | | if (item.id === v) { |
| | | this.form.baseGoodsParamList = JSON.parse(JSON.stringify(item.baseCateParamList)) |
| | | this.form.baseGoodsParamList.forEach(item => { |
| | | item.pramaId = item.id |
| | | }) |
| | | } |
| | | }) |
| | | }, |
| | | uploadReverseSuccess(file) { |
| | | this.form.imgurl = file.imgurl; |
| | | this.form.imgfullurl = file.imgurlfull; |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | ::v-deep .el-form-item__content { |
| | | .el-input { |
| | | width: 400px; |
| | | } |
| | | } |
| | | </style> |