From a76c5c86ac9af71da45bf78c825a2c7aa843b4c8 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期五, 26 一月 2024 15:35:54 +0800 Subject: [PATCH] Revert "Mr.Shi" --- platform/src/components/business/OperaGoodsWindow.vue | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 173 insertions(+), 0 deletions(-) diff --git a/platform/src/components/business/OperaGoodsWindow.vue b/platform/src/components/business/OperaGoodsWindow.vue new file mode 100644 index 0000000..b4d0072 --- /dev/null +++ b/platform/src/components/business/OperaGoodsWindow.vue @@ -0,0 +1,173 @@ +<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" /> + 鍙兘涓婁紶鍥剧墖鏍煎紡锛宲ng鏍煎紡锛屽缓璁昂瀵�140px*140px + </el-form-item> + <el-form-item label="鍟嗗搧鍥剧墖"> + <UploadImage :fileList="form.multifileList" :uploadData="uploadData" @beginUpload="isUploading = true" @endUpload="isUploading = false" /> + 鍙兘涓婁紶鍥剧墖鏍煎紡锛宲ng鏍煎紡锛屽缓璁昂瀵�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('鍙兘杈撳叆姝f暣鏁�') + 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> -- Gitblit v1.9.3