| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- <template>
- <el-drawer v-model="visible" size="800px" destroy-on-close :close-on-click-modal="false" :with-header="false">
- <el-container class="flex-column">
- <div class="drawer-detail-main">
- <div class="drawer-detail-header">
- <div class="drawer-detail-header-body">
- <div class="drawer-detail-header-left">{{titleMap[mode]}}</div>
- <div class="drawer-detail-header-left">
- <el-button type="default" icon="el-icon-close" @click="visible=false"></el-button>
- </div>
- </div>
- </div>
- </div>
- <el-main>
- <el-form ref="dialogForm" :model="formData" :rules="rules" label-width="100px" label-position="top">
- <el-form-item label="关联团单" prop="product_name">
- <el-input v-model="formData.product_name" placeholder="请选择团单" clearbale readonly :style="{width:'100%'}" @click="selectStore">
- <template #append>
- <el-tooltip effect="dark" content="点这里,清除选择" placement="top-start">
- <div class="remove-a" @click="clearStore">清除</div>
- </el-tooltip>
- </template>
- </el-input>
- <div class="el-form-item-msg"></div>
- </el-form-item>
- <el-form-item label="商品标题" prop="title">
- <el-input v-model="formData.title" clearable placeholder="请输入"></el-input>
- <div class="el-form-item-msg"></div>
- </el-form-item>
- <el-form-item label="商品主图" prop="image">
- <sc-upload v-model="formData.image" tip="图片尺寸不超过5M,图片越小呈现的速度越快,建议分辨率不低于750*562px"></sc-upload>
- </el-form-item>
- <el-form-item label="状态" prop="status">
- <el-radio-group v-model="formData.status">
- <el-radio-button :label="1">正常</el-radio-button>
- <el-radio-button :label="0">禁用</el-radio-button>
- </el-radio-group>
- <div class="el-form-item-msg"></div>
- </el-form-item>
- </el-form>
- </el-main>
- <el-footer>
- <el-button @click="visible=false" size="large">取 消</el-button>
- <el-button v-if="mode!='show'" size="large" type="primary" :loading="isSaveing" @click="submit()">保 存</el-button>
- </el-footer>
- </el-container>
- </el-drawer>
- <goodsMain ref="goodsMain" :multiple="false" @success="handleGoods"></goodsMain>
- </template>
- <script>
- import goodsMain from '@/views/merchant/components/goods';
- export default {
- components: {
- goodsMain
- },
- data(){
- return {
- goodsData:[],
- starData:[],
- loading: false,
- isSaveing: false,
- mode:"add",
- titleMap:{
- add:"新增核销商品",
- edit:"编辑核销商品"
- },
- visible:false,
- formData:{
- status:1
- },
- rules:{
- status: [
- {required: true, message: '请选择'}
- ],
- title: [
- {required: true, message: '请输入'}
- ],
- image: [
- {required: true, message: '请上传'}
- ],
- product_name: [
- {required: true, message: '请输入'}
- ]
- }
- }
- },
- methods:{
- open(mode = 'add'){
- this.mode = mode;
- this.visible = true;
- return this
- },
- //表单注入数据
- setData(data){
- if (this.mode == 'edit') {
- data.goods_id = data.goods.goods_id;
- data.product_name = data.goods.product_name;
- }
- this.formData = JSON.parse(JSON.stringify(data));
- },
- selectStore(){
- this.$nextTick(()=>{
- this.$refs.goodsMain.open('off')
- })
- },
- handleGoods(data){
- this.formData.goods_id = data.goods_id;
- this.formData.product_name = data.product_name;
- },
- clearStore(){
- this.formData.goods_id = "";
- this.formData.product_name = "";
- },
- async submit(){
- var validate = await this.$refs.dialogForm.validate().catch(()=>{});
- if(!validate){ return false }
- this.isSaveing = true;
- let submitData = JSON.parse(JSON.stringify(this.formData));
- var resp = await this.$API.goodsoff.save.post(submitData);
- this.isSaveing = false;
- if (resp.code == 0) {
- return this.$message.error(resp.msg);
- }
- this.$message.success(resp.msg);
- this.visible = false;
- this.formData = {};
- this.$emit("success");
- }
- }
- }
- </script>
- <style>
- .text-center{text-align: center;}
- .goods-live{width: 100%;margin-top: 10px;}
- </style>
|