提交 df37cab7 编写于 作者: shuang.zhou's avatar shuang.zhou

Merge branch 'teasing/3.21.0' into 'release'

Teasing/3.21.0

See merge request com.pica.cloud.education.frontend/pica.cloud.web-education-admin!353
...@@ -11,9 +11,9 @@ ...@@ -11,9 +11,9 @@
</el-col> </el-col>
</el-row> </el-row>
<el-form <el-form
ref="formData" ref="formData3"
:model="formData" :model="formData3"
:rules="rules" :rules="rules3"
label-width="150px" label-width="150px"
label-suffix=":" label-suffix=":"
class="basic-form" class="basic-form"
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
<el-col :span="13"> <el-col :span="13">
<el-input <el-input
size="small" size="small"
v-model="formData.goodsName" v-model="formData3.goodsName"
placeholder="请输入商品名称" placeholder="请输入商品名称"
show-word-limit show-word-limit
maxlength="60" maxlength="60"
...@@ -40,11 +40,12 @@ ...@@ -40,11 +40,12 @@
type="textarea" type="textarea"
rows="4" rows="4"
size="small" size="small"
v-model="formData.goodsDescription" v-model="formData3.goodsDescription"
placeholder="请输入商品介绍" placeholder="请输入商品介绍"
maxlength="1000" maxlength="40"
show-word-limit show-word-limit
></el-input> ></el-input>
<span class="word-tip">此文案可摘取药品说明书【功能主治】or【适应症】</span>
<!-- <span class="word-num">{{(formData.goodsDescription).replace(/\s+/g,"").length}}/1000</span> --> <!-- <span class="word-num">{{(formData.goodsDescription).replace(/\s+/g,"").length}}/1000</span> -->
</el-col> </el-col>
</el-form-item> </el-form-item>
...@@ -56,6 +57,9 @@ ...@@ -56,6 +57,9 @@
:show-file-list="isShowFileList" :show-file-list="isShowFileList"
action="#" action="#"
:before-upload="beforeUploadPic" :before-upload="beforeUploadPic"
multiple
:on-exceed="imgExceed"
:limit="6"
> >
<div class="file-pics" v-if="fileGoodsList.length > 0" :key="index" v-for="(item,index) in fileGoodsList"> <div class="file-pics" v-if="fileGoodsList.length > 0" :key="index" v-for="(item,index) in fileGoodsList">
<img :src="item.url" @mouseover.stop="headIndex=index" class="bg-img"/> <img :src="item.url" @mouseover.stop="headIndex=index" class="bg-img"/>
...@@ -68,8 +72,8 @@ ...@@ -68,8 +72,8 @@
<i class="el-icon-delete"></i> <i class="el-icon-delete"></i>
</div> </div>
</div> </div>
<img class="bg-img" src="../../assets/image/small.png" v-if="fileGoodsList.length <10"/> <img class="bg-img" src="../../assets/image/small.png" v-if="fileGoodsList.length < 6"/>
<div class="limit-text"> <div class="limit-text" v-if="fileGoodsList.length < 6">
<!-- <p>限制大小: 200kb</p> --> <!-- <p>限制大小: 200kb</p> -->
<p>建议尺寸:750*420</p> <p>建议尺寸:750*420</p>
<p>支持jpeg, png格式</p> <p>支持jpeg, png格式</p>
...@@ -78,13 +82,44 @@ ...@@ -78,13 +82,44 @@
<p class="upload-message" v-if="!isgoodsImages">请上传商品头图</p> <p class="upload-message" v-if="!isgoodsImages">请上传商品头图</p>
<!-- <p class="upload-message" v-if="uploadImgMessage1">请上传商品头图</p> --> <!-- <p class="upload-message" v-if="uploadImgMessage1">请上传商品头图</p> -->
</el-form-item> </el-form-item>
<el-form-item label="商品介绍视频" class="label-video">
<el-upload
accept=".mp4"
:on-remove="handleRemoveVideo"
:file-list="videoList"
:before-upload="beforeVideoUpload"
:show-file-list="false"
:disabled="videoList.length == 1"
:limit="1"
action="#"
class="bg-uploader"
>
<video id="introVideoLecture" :src="videoModel.videoFullPath" controls preload style="width: 100%;" v-if="videoList.length == 1">
视频
</video>
<img class="bg-img" src="../../assets/image/video.png" v-if="videoList.length <1"/>
<div class="limit-text" v-if="videoList.length <1">
<p>建议大小:20M以内</p>
<p>仅支持MP4格式</p>
<P>建议视频文件名格式:举例(GXY_001_02_03.mp4)</P>
</div>
</el-upload>
<el-progress :text-inside="true" :stroke-width="16" :percentage="uploadProgress" status="success" class="video-progress"
v-show="uploadProgress>0&&uploadProgress<100">
</el-progress>
<el-button class="dl-video" icon="el-icon-delete" circle @click="deleteVideo" v-if="videoList.length == 1"></el-button>
</el-form-item>
<el-form-item label="商品类型" prop="goodsType"> <el-form-item label="商品类型" prop="goodsType">
<el-select <el-select
v-model="formData.goodsType" v-model="formData3.goodsType"
placeholder="请选择商品类型" placeholder="请选择商品类型"
size="small" size="small"
:disabled="isEdit" :disabled="isEdit"
@change="getGoodsTypes(formData.goodsType,2)"> @change="getGoodsTypes(formData3.goodsType,2)">
<el-option <el-option
v-for="(item,index) in oneLever" v-for="(item,index) in oneLever"
:key="item.categoryName+'-'+index" :key="item.categoryName+'-'+index"
...@@ -94,7 +129,7 @@ ...@@ -94,7 +129,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否支持售后" prop="expressLimitFlag" v-if="storeType < 3"> <el-form-item label="是否支持售后" prop="expressLimitFlag" v-if="storeType < 3">
<el-radio-group v-model="formData.expressLimitFlag" :disabled="!hasRepoFlag"> <el-radio-group v-model="formData3.expressLimitFlag" :disabled="!hasRepoFlag">
<el-radio :label="1"></el-radio> <el-radio :label="1"></el-radio>
<el-radio :label="0"></el-radio> <el-radio :label="0"></el-radio>
</el-radio-group> </el-radio-group>
...@@ -118,7 +153,7 @@ ...@@ -118,7 +153,7 @@
<el-form-item label="条形码" prop="barCode"> <el-form-item label="条形码" prop="barCode">
<el-col :span="18"> <el-col :span="18">
<el-input <el-input
:disabled="barAndGoodsFlag" :disabled="barAndGoodsFlag || idMedicEdit"
size="small" size="small"
v-model="formData1.barCode" v-model="formData1.barCode"
placeholder="请输入条形码" placeholder="请输入条形码"
...@@ -133,6 +168,7 @@ ...@@ -133,6 +168,7 @@
<el-input <el-input
size="small" size="small"
v-model="formData1.approvalNumber" v-model="formData1.approvalNumber"
:disabled="idMedicEdit"
placeholder="请输入批准文号" placeholder="请输入批准文号"
style="width:50%;" style="width:50%;"
></el-input> ></el-input>
...@@ -142,7 +178,7 @@ ...@@ -142,7 +178,7 @@
<el-form-item label="通用名称" prop="medicCommonName"> <el-form-item label="通用名称" prop="medicCommonName">
<el-col :span="13"> <el-col :span="13">
<el-input <el-input
:disabled="goodDisabled || barAndGoodsFlag" :disabled="goodDisabled || barAndGoodsFlag || idMedicEdit"
size="small" size="small"
v-model="formData1.medicCommonName" v-model="formData1.medicCommonName"
placeholder="请输入通用名称" placeholder="请输入通用名称"
...@@ -160,7 +196,7 @@ ...@@ -160,7 +196,7 @@
size="small" size="small"
v-model="formData1.medicGoodsName" v-model="formData1.medicGoodsName"
placeholder="请输入商品名称" placeholder="请输入商品名称"
:disabled="idMedicEdit"
maxlength="60" maxlength="60"
show-word-limit show-word-limit
></el-input> ></el-input>
...@@ -174,6 +210,7 @@ ...@@ -174,6 +210,7 @@
size="small" size="small"
v-model="formData1.size" v-model="formData1.size"
placeholder="请输入规格" placeholder="请输入规格"
:disabled="idMedicEdit"
style="width:70%;" style="width:70%;"
></el-input> ></el-input>
...@@ -183,8 +220,8 @@ ...@@ -183,8 +220,8 @@
<div class="inline"> <div class="inline">
<el-form-item label="是否是处方药" prop="otc1"> <el-form-item label="是否是处方药" prop="otc1">
<el-col :span="24"> <el-col :span="24">
<el-radio size="mini" v-model="formData1.otc1" label="1">处方药</el-radio> <el-radio size="mini" v-model="formData1.otc1" label="1" :disabled="idMedicEdit">处方药</el-radio>
<el-radio v-model="formData1.otc1" label="0">非处方药</el-radio> <el-radio v-model="formData1.otc1" label="0" :disabled="idMedicEdit">非处方药</el-radio>
</el-col> </el-col>
</el-form-item> </el-form-item>
<el-form-item label="剂型" prop="dosageId"> <el-form-item label="剂型" prop="dosageId">
...@@ -192,6 +229,7 @@ ...@@ -192,6 +229,7 @@
v-model="formData1.dosageId" v-model="formData1.dosageId"
placeholder="请选择药品剂型" placeholder="请选择药品剂型"
size="small" size="small"
:disabled="idMedicEdit"
clearable> clearable>
<el-option <el-option
v-for="(item,index) in doseAll" v-for="(item,index) in doseAll"
...@@ -209,6 +247,7 @@ ...@@ -209,6 +247,7 @@
v-model="formData1.usage" v-model="formData1.usage"
placeholder="请输入用法用量" placeholder="请输入用法用量"
style="width:70%;" style="width:70%;"
:disabled="idMedicEdit"
></el-input> ></el-input>
<span class="word-num">例如:每次一袋 每天1-2次</span> <span class="word-num">例如:每次一袋 每天1-2次</span>
...@@ -284,6 +323,7 @@ ...@@ -284,6 +323,7 @@
v-model="formData1.manufacturer" v-model="formData1.manufacturer"
placeholder="请输入生产厂家" placeholder="请输入生产厂家"
style="width:70%;" style="width:70%;"
:disabled="idMedicEdit"
></el-input> ></el-input>
<span class="word-num"></span> <span class="word-num"></span>
...@@ -295,6 +335,7 @@ ...@@ -295,6 +335,7 @@
size="small" size="small"
v-model="formData1.department" v-model="formData1.department"
placeholder="请输入适用科室" placeholder="请输入适用科室"
:disabled="idMedicEdit"
></el-input> ></el-input>
<!-- <el-select <!-- <el-select
...@@ -317,6 +358,7 @@ ...@@ -317,6 +358,7 @@
size="small" size="small"
v-model="formData1.treatDisease" v-model="formData1.treatDisease"
placeholder="请输入治疗疾病" placeholder="请输入治疗疾病"
:disabled="idMedicEdit"
></el-input> ></el-input>
...@@ -332,6 +374,7 @@ ...@@ -332,6 +374,7 @@
v-model="formData1.expiredTime" v-model="formData1.expiredTime"
placeholder="请输入有效期" placeholder="请输入有效期"
style="width:70%;" style="width:70%;"
:disabled="idMedicEdit"
></el-input> ></el-input>
<!-- <el-date-picker <!-- <el-date-picker
v-model="formData.expiredTime" v-model="formData.expiredTime"
...@@ -352,6 +395,7 @@ ...@@ -352,6 +395,7 @@
v-model="formData1.modelNo" v-model="formData1.modelNo"
placeholder="请输入型号" placeholder="请输入型号"
style="width:70%;" style="width:70%;"
:disabled="idMedicEdit"
></el-input> ></el-input>
<span class="word-num"></span> <span class="word-num"></span>
</el-col> </el-col>
...@@ -363,6 +407,7 @@ ...@@ -363,6 +407,7 @@
v-model="formData1.standardNo" v-model="formData1.standardNo"
placeholder="请输入执行标准号" placeholder="请输入执行标准号"
style="width:70%;" style="width:70%;"
:disabled="idMedicEdit"
></el-input> ></el-input>
<span class="word-num"></span> <span class="word-num"></span>
</el-col> </el-col>
...@@ -867,12 +912,13 @@ ...@@ -867,12 +912,13 @@
import BreadCrumb from "@/components/breadcrumb.vue"; import BreadCrumb from "@/components/breadcrumb.vue";
let vm = null; let vm = null;
import { openLoading, closeLoading } from "../../utils/utils"; import { openLoading, closeLoading } from "../../utils/utils";
import { doUpload, getFilePath } from "../../utils/qiniu-util"; import { isEmptyUtils } from "@/utils/index";
import { doUpload, getFilePath, createFilePath } from "../../utils/qiniu-util";
import { updateGoods ,updateStock,dosageAll,getDeparts,getGoodsList, getGoodDetails, updateGoodsV2, getHospitalInfoByStoreId, getCheckPackageIdList, getTypeCodeList } from '@/utils/goods'; import { updateGoods ,updateStock,dosageAll,getDeparts,getGoodsList, getGoodDetails, updateGoodsV2, getHospitalInfoByStoreId, getCheckPackageIdList, getTypeCodeList } from '@/utils/goods';
import { getStoreAdressRepot } from "@/utils/shop"; import { getStoreAdressRepot } from "@/utils/shop";
import Cropper from '@/components/common/cropper.vue' import Cropper from '@/components/common/cropper.vue'
import { originRules1, originRules2, originRules } from './rules'; import { originRules1, originRules2, originRules, originRules3 } from './rules';
import { originForm1, originForm2, originForm } from './forms'; import { originForm1, originForm2, originForm, originForm3 } from './forms';
export default { export default {
components: { components: {
...@@ -964,6 +1010,7 @@ ...@@ -964,6 +1010,7 @@
formData: JSON.parse(JSON.stringify(originForm)), // 通用信息 formData: JSON.parse(JSON.stringify(originForm)), // 通用信息
formData1: JSON.parse(JSON.stringify(originForm1)), // 基本信息 formData1: JSON.parse(JSON.stringify(originForm1)), // 基本信息
formData2: JSON.parse(JSON.stringify(originForm2)), formData2: JSON.parse(JSON.stringify(originForm2)),
formData3: JSON.parse(JSON.stringify(originForm3)),
buyLimitDtoList:[], buyLimitDtoList:[],
rules: {}, rules: {},
rules1: {}, rules1: {},
...@@ -1003,7 +1050,18 @@ ...@@ -1003,7 +1050,18 @@
title:"限购条件" title:"限购条件"
}, },
storeType: 1, //1: "供货商",2: "小药房",3: "医生小店" storeType: 1, //1: "供货商",2: "小药房",3: "医生小店"
hasRepoFlag: 0 //店铺是否有退货地址 hasRepoFlag: 0, //店铺是否有退货地址
videoList: [],//视频上传文件列表
videoModel:{
videoFullPath: ''
},
sumFile: 0,
uploadProgress:0, // 上传视频进度条
}
},
computed: {
idMedicEdit() {
return this.isEdit && !this.isCheckServe;;
} }
}, },
created() { created() {
...@@ -1020,6 +1078,7 @@ ...@@ -1020,6 +1078,7 @@
this.rules = originRules; this.rules = originRules;
this.rules1 = originRules1; this.rules1 = originRules1;
this.rules2 = originRules2; this.rules2 = originRules2;
this.rules3 = originRules3
// this.rules2.barCode = originRules.barCode; // this.rules2.barCode = originRules.barCode;
this.jumPathThird = '/goods-manage?storeId=' + storeId +'&commissionFlag=' + this.commissionFlag +'&storeType=' + this.storeType; this.jumPathThird = '/goods-manage?storeId=' + storeId +'&commissionFlag=' + this.commissionFlag +'&storeType=' + this.storeType;
...@@ -1101,6 +1160,7 @@ ...@@ -1101,6 +1160,7 @@
this.formData = {...this.formData, ...goodsInfo}; this.formData = {...this.formData, ...goodsInfo};
this.formData2 = medicalService; this.formData2 = medicalService;
this.formData = { ...this.formData, ...this.formData2 }; this.formData = { ...this.formData, ...this.formData2 };
this.formData3 = { ...goodsInfo};
this.buyLimitDtoList = buyLimitDtoList; this.buyLimitDtoList = buyLimitDtoList;
this.hasRepoFlag = hasRepoFlag; this.hasRepoFlag = hasRepoFlag;
this.$set(this.formData2, 'suitableArr', this.formData.suitable.split(',')); this.$set(this.formData2, 'suitableArr', this.formData.suitable.split(','));
...@@ -1109,6 +1169,10 @@ ...@@ -1109,6 +1169,10 @@
this.formData.stock = this.formData.goodsStock; this.formData.stock = this.formData.goodsStock;
this.fileGoodsList = this.getImges(goodsInfo.goodsHeaderImages,1); this.fileGoodsList = this.getImges(goodsInfo.goodsHeaderImages,1);
this.goodsCheckList = this.getImges(medicalService.goodsCheckImages, goodsType); this.goodsCheckList = this.getImges(medicalService.goodsCheckImages, goodsType);
if (goodsInfo.goodsVideoList.length > 0) {
this.videoList.push(goodsInfo.goodsVideoList[0]);
this.videoModel.videoFullPath = this.videoList[0].goodsImgUrl;
}
this.rules = { this.rules = {
...this.rules, ...this.rules,
...@@ -1140,6 +1204,7 @@ ...@@ -1140,6 +1204,7 @@
const {goodsList, hasRepoFlag } = res.data; const {goodsList, hasRepoFlag } = res.data;
this.formData1 = goodsList[0]; this.formData1 = goodsList[0];
this.formData = goodsList[0]; this.formData = goodsList[0];
this.formData3 = goodsList[0];
this.hasRepoFlag = hasRepoFlag; this.hasRepoFlag = hasRepoFlag;
this.buyLimitDtoList = this.formData.buyLimitDtoList; this.buyLimitDtoList = this.formData.buyLimitDtoList;
this.formData.optPrice = this.formData.costPrice/100; this.formData.optPrice = this.formData.costPrice/100;
...@@ -1147,6 +1212,11 @@ ...@@ -1147,6 +1212,11 @@
this.fileIntrList = this.getImges(goodsList[0].medicImgList,2); this.fileIntrList = this.getImges(goodsList[0].medicImgList,2);
this.formData.stock = this.formData.goodsStock; this.formData.stock = this.formData.goodsStock;
this.formData.otc1 = this.formData.otc ? '1' : '0'; this.formData.otc1 = this.formData.otc ? '1' : '0';
if (goodsList[0].goodsVideoList.length > 0) {
this.videoList.push(goodsList[0].goodsVideoList[0]);
this.videoModel.videoFullPath = this.videoList[0].goodsImgUrl;
}
if(this.isMedic){ if(this.isMedic){
this.getLever(5,2,1) this.getLever(5,2,1)
}else{ }else{
...@@ -1416,15 +1486,15 @@ ...@@ -1416,15 +1486,15 @@
complete() { complete() {
this.formData1.leastCount = this.formData.leastCount; this.formData1.leastCount = this.formData.leastCount;
this.formData1.mostCount = this.formData.mostCount; this.formData1.mostCount = this.formData.mostCount;
let formNameList = ['formData', 'formData1', 'formData2']; let formNameList = ['formData', 'formData1', 'formData2', 'formData3'];
// let formName = "formData"; // let formName = "formData";
if(this.goodsType == 337 ){ if(this.goodsType == 337 ){
formNameList = ['formData', 'formData2']; formNameList = ['formData', 'formData2', 'formData3'];
this.formData = { ...this.formData, ...this.formData2 }; this.formData = { ...this.formData, ...this.formData2,...this.formData3 };
}else{ }else{
formNameList = ['formData', 'formData1']; formNameList = ['formData', 'formData1', 'formData3'];
this.formData = { ...this.formData, ...this.formData1 }; this.formData = { ...this.formData, ...this.formData1,...this.formData3 };
} }
for(let i=0;i<this.fileGoodsList.length;i++){ for(let i=0;i<this.fileGoodsList.length;i++){
this.fileGoodsList[i].imageSort = i+1 this.fileGoodsList[i].imageSort = i+1
...@@ -1440,15 +1510,17 @@ ...@@ -1440,15 +1510,17 @@
// console.log(this.isgoodStock); // console.log(this.isgoodStock);
this.formData.goodsImages = this.fileGoodsList; this.formData.goodsImages = this.fileGoodsList;
this.formData.goodsHeaderImages = this.fileGoodsList; this.formData.goodsHeaderImages = this.fileGoodsList;
this.formData.goodsVideoList = this.videoList;
this.formData.specificationImages = this.fileIntrList; this.formData.specificationImages = this.fileIntrList;
this.formData.buyLimitDtoList = this.buyLimitDtoList; this.formData.buyLimitDtoList = this.buyLimitDtoList;
this.isgoodsImages = this.formData.goodsImages.length == 0 ? false :true; this.isgoodsImages = this.formData.goodsImages.length == 0 ? false :true;
// 如果是【药品】类型的商品 // 如果是【药品】类型的商品
if(this.isMedic){ // if(this.isMedic){
if(!this.isgoodsImages){ if(!this.isgoodsImages){
return; return;
} }
} // }
// 如果是【检测服务】类型的商品 // 如果是【检测服务】类型的商品
if(this.isCheckServe){ if(this.isCheckServe){
this.formData.goodsCheckImages = this.goodsCheckList; this.formData.goodsCheckImages = this.goodsCheckList;
...@@ -1528,11 +1600,17 @@ ...@@ -1528,11 +1600,17 @@
}) })
}) })
}, },
imgExceed(file) {
if (file.length > 6) {
this.$message.error("最多只能上传6张图片");
};
},
//上传商品头图 //上传商品头图
beforeUploadPic(file) { beforeUploadPic(file) {
if(this.fileGoodsList.length > 10){ // if(this.fileGoodsList.length > 6){
return ; // this.$message.error("最多只能上传6张图片");
} // return ;
// }
let vm = this; let vm = this;
let picTypes = ['image/jpeg','image/png'] let picTypes = ['image/jpeg','image/png']
...@@ -1826,6 +1904,109 @@ ...@@ -1826,6 +1904,109 @@
} }
}) })
}, },
// 视频
deleteVideo(videoList) {
console.log(videoList,'item,fileGoodsListitem,fileGoodsListv')
this.videoList = [];
this.videoModel.videoFullPath='';
},
beforeVideoUpload(file) {
const video2M = file.size / 1024 /1024 < 20;
console.log(file.size, 'video2Mvideo2Mvideo2M')
if (!video2M) {
this.$message.error('上传视频大小不能超过20M!');
}
else {
this.doVideoUpload(file, 1);
}
},
handleRemoveVideo(file, videoList) {
//console.log(this.videoList);
for (let i = 0; i < this.videoList.length; i++) {
if (this.videoList[i].name == file.name) {
this.videoList.splice(i, 1);
console.log("删除" + i);
}
}
},
checkUpdate(name) {
let flag = true;
for(let i=0;i<this.videoList.length;i++) {
if(this.videoList[i].name == name) {
flag = false;
this.$message.warning('上传文件重发');
}
}
console.log('name',name,'',this.videoList)
return flag;
},
doVideoUpload(file, index) {
console.log('file',file);
//console.log('videoList项目列表:',this.videoList);
this.videoModel.videoFullPath = '';
if(file.name.indexOf(' ') != -1){
this.$message.warning('文件名不能包含空格');
return;
}
let updateFlag = this.checkUpdate(file.name);
if(updateFlag == false) {
return;
}
var ext = file.type
var arr = ext.split('/');
var filety = "." + arr[1];
/*if (filety.indexOf(".pdf") < 0 && filety.indexOf(".jpeg") < 0 && filety.indexOf(".jpg") < 0
&& filety.indexOf(".png") < 0 && filety.indexOf(".mp4") < 0) {
this.$message.warning('文件格式错误');
return
}*/
let self = this;
//如果没有选择文件,返回
if (isEmptyUtils(file)) {
return;
}
console.log('file.type', file.type)
if(filety != ".mp4"){
// if (file.type !== 'video/mp4') {
self.$message.error('仅支持上传mp4格式视频');
return;
}
var arr = file.name.split('_');
if(arr.length != 4){
self.$message.error('上传视频文件名格式不正确:举例(GXY_001_02_03.mp4)');
return;
}
self.$message.info('开始上传');
self.videoModel.videoPath = createFilePath(file,file.name)
// let videoPath = createFilePath(file,file.name)
doUpload(self,file,self.videoModel.videoPath,"preview4",
"uploadProgress1",
"").then(function (result) {
console.log('成功result',result);
self.videoModel.videoFullPath = result.fullPath;
// self.model.size = result.size;
// self.model.ext = result.ext;
// self.model.name = self.model.videoPath;
let fileItem = {
goodsImgUrl: result.fullPath,
uid: '',
imageUrl: result.fullPath,
imageType: 9,
goodsId: self.formData.goodsId,
id: null,
deleteFlag: 0
}
self.videoList.push(fileItem);
self.$message.success('上传成功');
console.log('sumFile',self.sumFile,'videoList',self.videoList);
return false;
});
},
}, },
} }
</script> </script>
...@@ -1844,6 +2025,9 @@ ...@@ -1844,6 +2025,9 @@
color: #449284; color: #449284;
} }
} }
.word-tip {
color: #e6af7a;
}
} }
.suitableList-select { .suitableList-select {
width: 445px; width: 445px;
...@@ -2065,4 +2249,29 @@ ...@@ -2065,4 +2249,29 @@
.el-icon-minus { .el-icon-minus {
color:#ffffff; color:#ffffff;
} }
#introVideoLecture {
height: 140px;
}
.video-progress {
width: 20%;
}
.el-upload-list {
width: 30%;
}
.label-video {
position: relative;
.el-button:focus, .el-button:hover {
color: #449284;
border-color: #449284;
background-color: #ecf5ff;
}
.dl-video {
position: absolute;
top: 50%;
left: 35%;
transform: translate(-50%,-50%);
}
}
</style> </style>
...@@ -69,7 +69,17 @@ const form = { ...@@ -69,7 +69,17 @@ const form = {
expressLimitFlag: 0, //是否支持退货退款 expressLimitFlag: 0, //是否支持退货退款
}; };
const form3 = {
goodsName: "",
goodsDescription: "",
goodsHeaderImages: [],
goodsVideoList: [],
goodsType: "",
expressLimitFlag: 0, //是否支持退货退款
};
export const originForm1 = form1; export const originForm1 = form1;
export const originForm2 = form2; export const originForm2 = form2;
export const originForm3 = form3;
export const originForm = form; export const originForm = form;
...@@ -94,8 +94,8 @@ ...@@ -94,8 +94,8 @@
</el-col> </el-col>
<el-col :span="12" style="text-align: right"> <el-col :span="12" style="text-align: right">
<el-button v-if="commissionFlag == 2" type="primary" size="small" @click="batchSetPrice()">批量设置分佣</el-button> <el-button v-if="commissionFlag == 2" type="primary" size="small" @click="batchSetPrice()" :disabled="tableData.length == 0">批量设置分佣</el-button>
<el-button type="primary" size="small" @click="exportOpt">批量导出商品</el-button> <el-button type="primary" size="small" @click="exportOpt" :disabled="tableData.length == 0">批量导出商品</el-button>
<el-button v-if="isSSO" type="primary" size="small" @click="batchOpt(3)">批量导入商品</el-button> <el-button v-if="isSSO" type="primary" size="small" @click="batchOpt(3)">批量导入商品</el-button>
<el-button type="primary" size="small" @click="edit('add')">新建单个商品</el-button> <el-button type="primary" size="small" @click="edit('add')">新建单个商品</el-button>
</el-col> </el-col>
...@@ -121,6 +121,7 @@ ...@@ -121,6 +121,7 @@
<span>{{ scope.row.goodsStatus | rangeStatus }}</span> <span>{{ scope.row.goodsStatus | rangeStatus }}</span>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="goodsHisStock" label="商品总库存" width="100" align="center"></el-table-column>
<el-table-column prop="quantityOfSale" label="有效销量" width="120" align="center"> <el-table-column prop="quantityOfSale" label="有效销量" width="120" align="center">
</el-table-column> </el-table-column>
...@@ -161,6 +162,16 @@ ...@@ -161,6 +162,16 @@
</el-table-column> </el-table-column>
<el-table-column prop="saleTime" label="发布时间" width="170" align="center"> <el-table-column prop="saleTime" label="发布时间" width="170" align="center">
</el-table-column> </el-table-column>
<el-table-column prop="modifiedIdStr" label="最近操作人" width="170" align="center">
<template slot-scope="scope">
<span>{{ scope.row.modifiedIdStr || '--' }}</span>
</template>
</el-table-column>
<el-table-column prop="modifiedTime" label="最近操作时间" width="170" align="center">
<template slot-scope="scope">
<span>{{ scope.row.modifiedTime || '--' }}</span>
</template>
</el-table-column>
<el-table-column label="操作" width="200" align="center" fixed="right"> <el-table-column label="操作" width="200" align="center" fixed="right">
<template slot-scope="scope"> <template slot-scope="scope">
<div v-if="scope.row.commissionFlag == 2"> <div v-if="scope.row.commissionFlag == 2">
...@@ -552,7 +563,6 @@ ...@@ -552,7 +563,6 @@
handleRemove(){}, handleRemove(){},
beforeRemove(){}, beforeRemove(){},
handleSelectionChange(val){ handleSelectionChange(val){
console.log(val)
this.selectList = val this.selectList = val
}, },
...@@ -622,8 +632,9 @@ ...@@ -622,8 +632,9 @@
reader.readAsDataURL(file); reader.readAsDataURL(file);
}, },
uploadTemp(){ uploadTemp(){
// let url = "https://file.yunqueyi.com/trade/store/goods_import_template.xlsx" // let url = "https://file.yunqueyi.com/trade/store/goods_import_template.xlsx 'https://file.yunqueyi.com/trade/store/20210129/goods_import_template.xlsx'"
const url = 'https://file.yunqueyi.com/trade/store/20210129/goods_import_template.xlsx'; const url = 'https://files.yunqueyi.com/template/goods_import_template_1.xlsx';
window.location.href = url window.location.href = url
}, },
getLever(id=0){ getLever(id=0){
...@@ -821,7 +832,6 @@ ...@@ -821,7 +832,6 @@
}, },
exportOpt() { exportOpt() {
const { goodsIdList, goodsType, goodsName, storeId, saleType } = this.searchForm; const { goodsIdList, goodsType, goodsName, storeId, saleType } = this.searchForm;
getGoodsExportUrl({ goodsIdList, goodsType, goodsName, storeId, saleType }).then(res => { getGoodsExportUrl({ goodsIdList, goodsType, goodsName, storeId, saleType }).then(res => {
if (res.code != '000000') { if (res.code != '000000') {
this.$message({ message: res.message, type: 'error' }); this.$message({ message: res.message, type: 'error' });
......
...@@ -89,19 +89,6 @@ const rules = { ...@@ -89,19 +89,6 @@ const rules = {
{ required: true, message: "请输入条形码", trigger: "submit" }, { required: true, message: "请输入条形码", trigger: "submit" },
{ validator: checkBarcode, trigger: "submit" } { validator: checkBarcode, trigger: "submit" }
], ],
goodsName: [
{ required: true, message: "请输入商品名称", trigger: "submit" },
{ validator: checkProjectStr, trigger: "submit" }
],
goodsHeaderImages: [
{ required: true, message: "请上传商品头图", trigger: "blur" }
],
goodsType:[
{ required: true, message: "请选择商品类型", trigger: "change" }
],
hcd:[
{ required: true, message: "请选择是否支持退货退款", trigger: "change" }
],
optPrice: [ optPrice: [
{ required: true, message: "请输入价格", trigger: "blur" }, { required: true, message: "请输入价格", trigger: "blur" },
], ],
...@@ -126,8 +113,22 @@ const rules = { ...@@ -126,8 +113,22 @@ const rules = {
// ], // ],
} }
const rules3 = {
goodsName: [
{ required: true, message: "请输入商品名称", trigger: "submit" },
{ validator: checkProjectStr, trigger: "submit" },
],
goodsDescription: [
{ required: true, message: "请输入商品介绍", trigger: "submit" },
],
goodsHeaderImages: [
{ required: true, message: "请上传商品头图", trigger: "blur" },
],
goodsType: [{ required: true, message: "请选择商品类型", trigger: "change" }],
};
export const originRules1 = rules1; export const originRules1 = rules1;
export const originRules2 = rules2; export const originRules2 = rules2;
export const originRules3 = rules3;
export const originRules = rules; export const originRules = rules;
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册