提交 e3e42d99 编写于 作者: chendeli's avatar chendeli

接口联调

上级 ad17dc8a
import fetch from '../fetch';
import { getBaseUrl } from '@/utils/index'
let headers = {
'Content-Type': 'application/json;charset=UTF-8',
token: localStorage.getItem('storageToken'),
};
export const getGoodsList = (params) => {
return fetch({
headers,
url: getBaseUrl(`store/goods/query`),
method: 'post',
data: params,
description: '商品列表查询',
})
};
//
export const batchOnOff = (params) => {
return fetch({
headers,
url: getBaseUrl(`store/goods/onoff/sale`),
method: 'post',
data: params,
description: '批量上下架',
})
};
export const updateGoods = (params) => {
return fetch({
headers,
url: getBaseUrl(`store/goods/upsert`),
method: 'post',
data: params,
description: '创建/更新商品',
})
};
///dosage/all
export const dosageAll = (parm) => {
return fetch({
headers,
url: getBaseUrl(`store/dosage/all`),
method: 'get',
// params: params,
description: '剂型',
})
};
export const getDeparts = (parm) => {
return fetch({
headers,
url: getBaseUrl(`api-ws/departments/category`),
method: 'get',
// params: params,
description: '科室',
})
};
//`basic-data/constants?typeCode=P128`
export const updateStock = (parm) => {
return fetch({
headers,
url: getBaseUrl(`trade/order/admin/query/${orderId}`),
method: 'get',
// params: params,
description: '增加/减少库存',
})
};
......@@ -21,123 +21,122 @@
<div class="basic-item-icon">
<div class="part-tit">通用信息</div>
<el-form-item label="商品名称" prop="goods_name">
<el-form-item label="商品名称" prop="goodsName">
<el-col :span="13">
<el-input
size="small"
v-model="formData.goods_name"
v-model="formData.goodsName"
placeholder="请输入商品名称"
show-word-limit
maxlength="60"
></el-input>
<!-- <span class="word-num">{{(formData.goods_name).replace(/\s+/g,"").length}}/60</span> -->
<!-- <span class="word-num">{{(formData.goodsName).replace(/\s+/g,"").length}}/60</span> -->
</el-col>
</el-form-item>
<el-form-item label="商品介绍" prop="goods_description">
<el-form-item label="商品介绍" prop="goodsDescription">
<el-col :span="13">
<el-input
type="textarea"
rows="4"
size="small"
v-model="formData.goods_description"
v-model="formData.goodsDescription"
placeholder="请输入商品介绍"
maxlength="1000"
show-word-limit
></el-input>
<!-- <span class="word-num">{{(formData.goods_description).replace(/\s+/g,"").length}}/1000</span> -->
<!-- <span class="word-num">{{(formData.goodsDescription).replace(/\s+/g,"").length}}/1000</span> -->
</el-col>
</el-form-item>
<el-form-item label="商品头图" class="required-label">
<el-upload
v-model="formData.goods_image"
:file-list="fileGoodsList"
class="bg-uploader"
:show-file-list="isShowFileList"
action="#"
:show-file-list="false"
:before-upload="beforeUploadPic"
>
<img
v-if="formData.goods_image"
:src="formData.goods_image"
@mouseover.stop="imgMouseOver1=true"
class="bg-img"
/>
<img v-if="!formData.goods_image" class="bg-img" src="../../assets/image/small.png" />
<div
class="img-delete"
v-show="imgMouseOver1"
@click.stop="deleteImg(1)"
@mouseout.stop="imgMouseOver1=false"
>
<i class="el-icon-delete"></i>
<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"/>
<div
class="img-delete"
v-if="headIndex==index"
@click.stop="deleteImg(item,fileGoodsList)"
@mouseout.stop="headIndex=-1"
>
<i class="el-icon-delete"></i>
</div>
</div>
<img class="bg-img" src="../../assets/image/small.png" />
<div class="limit-text">
<p>限制大小: 200kb</p>
<p>最小尺寸:750*420</p>
<p>建议尺寸:750*420</p>
<p>支持jpeg, png格式</p>
</div>
</el-upload>
<p class="upload-message" v-if="!isGoods_image">请上传商品头图</p>
<p class="upload-message" v-if="!isgoodsImages">请上传商品头图</p>
</el-form-item>
<el-form-item label="商品类型" prop="goods_type">
<el-form-item label="商品类型" prop="goodsType">
<el-select
v-model="formData.goods_type"
v-model="formData.goodsType"
placeholder="请选择商品类型"
size="small"
@change="getGoodsTypes(formData.goodsType,2)"
clearable>
<el-option
v-for="(item,index) in typeList"
v-for="(item,index) in oneLever"
:key="index"
:label="item.label"
:value="item.value"
:label="item.categoryName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<!-- <p class="upload-message" v-if="uploadImgMessage1">请上传商品头图</p> -->
</div>
<div class="basic-item-icon">
<div class="basic-item-icon" v-if="isMedic">
<div class="part-tit">药品信息</div>
<el-form-item label="批准文号" prop="approval_number">
<el-col :span="13">
<el-form-item label="批准文号" prop="approvalNumber">
<el-col :span="18">
<el-input
size="small"
v-model="formData.approval_number"
v-model="formData.approvalNumber"
placeholder="请输入批准文号"
style="width:70%;"
style="width:50%;"
></el-input>
<!-- <span class="word-num">{{(formData.name).replace(/\s+/g,"").length}}/60</span> -->
<span class="fast-opt">快速录入</span>
<span class="word-num">(点击可快速录入下面的药品信息)</span>
</el-col>
</el-form-item>
<el-form-item label="药品通用名称" prop="medic_common_name">
<el-form-item label="药品通用名称" prop="medicCommonName">
<el-col :span="13">
<el-input
size="small"
v-model="formData.medic_common_name"
v-model="formData.medicCommonName"
placeholder="请输入药品通用名称"
style="width:70%;"
maxlength="60"
show-word-limit
></el-input>
<!-- <span class="word-num">{{(formData.medic_common_name).replace(/\s+/g,"").length}}/60</span> -->
<!-- <span class="word-num">{{(formData.medicCommonName).replace(/\s+/g,"").length}}/60</span> -->
</el-col>
</el-form-item>
<el-form-item label="药品商品名称" prop="medic_goods_name">
<el-form-item label="药品商品名称" prop="medicGoodsName">
<el-col :span="13">
<el-input
size="small"
v-model="formData.medic_goods_name"
v-model="formData.medicGoodsName"
placeholder="请输入药品商品名称"
maxlength="60"
show-word-limit
></el-input>
<!-- <span class="word-num">{{(formData.medic_goods_name).replace(/\s+/g,"").length}}/60</span> -->
<!-- <span class="word-num">{{(formData.medicGoodsName).replace(/\s+/g,"").length}}/60</span> -->
</el-col>
</el-form-item>
<el-form-item label="药品规格" prop="size">
......@@ -153,23 +152,23 @@
</el-col>
</el-form-item>
<div class="inline">
<el-form-item label="是否是处方药" prop="otc">
<el-form-item label="是否是处方药" prop="otc1">
<el-col :span="24">
<el-radio size="mini" v-model="formData.otc" label="1">处方药</el-radio>
<el-radio size="mini" v-model="formData.otc1" label="1">处方药</el-radio>
<el-radio v-model="formData.otc" label="0">非处方药</el-radio>
</el-col>
</el-form-item>
<el-form-item label="剂型" prop="dosage_id">
<el-form-item label="剂型" prop="dosageId">
<el-select
v-model="formData.dosage_id"
v-model="formData.dosageId"
placeholder="请选择药品剂型"
size="small"
clearable>
<el-option
v-for="(item,index) in typeList"
v-for="(item,index) in doseAll"
:key="index"
:label="item.label"
:value="item.value"
:label="item.dosageName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
......@@ -187,64 +186,67 @@
</el-col>
</el-form-item>
<el-form-item label="药品类型" prop="category_id_level2">
<el-form-item label="药品类型" prop="categoryIdLevel2">
<el-select
v-model="formData.category_id_level2"
v-model="formData.categoryIdLevel2"
placeholder="请选择药品类型"
size="small"
@change="getLever(formData.categoryIdLevel2,3)"
clearable
>
<el-option
v-for="(item,index) in typeList"
v-for="(item,index) in twoLever"
:key="index"
:label="item.label"
:value="item.value"
:label="item.categoryName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<div class="inline">
<el-form-item label="一级类目" prop="dynamicFlag">
<el-form-item label="一级类目" prop="categoryIdLevel3" >
<el-select
v-model="formData.dynamicFlag"
v-model="formData.categoryIdLevel3"
placeholder="请选择一级类目"
size="small"
clearable
@change="getLever(formData.categoryIdLevel3,4)"
>
<el-option
v-for="(item,index) in typeList"
v-for="(item,index) in threeLever"
:key="index"
:label="item.label"
:value="item.value"
:label="item.categoryName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="二级类目" prop="dynamicFlag">
<el-form-item label="二级类目" prop="categoryIdLevel4" >
<el-select
v-model="formData.dynamicFlag"
v-model="formData.categoryIdLevel4"
placeholder="请选择二级类目"
size="small"
clearable
@change="getLever(formData.categoryIdLevel4,5)"
>
<el-option
v-for="(item,index) in typeList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
<el-option
v-for="(item,index) in fourLever"
:key="index"
:label="item.categoryName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="三级级类目" prop="dynamicFlag">
<el-form-item label="三级级类目" prop="categoryIdLevel5">
<el-select
v-model="formData.dynamicFlag"
v-model="formData.categoryIdLevel5"
placeholder="请选择三级类目"
size="small"
clearable
>
<el-option
v-for="(item,index) in typeList"
v-for="(item,index) in fiveLever"
:key="index"
:label="item.label"
:value="item.value"
:label="item.categoryName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
......@@ -270,18 +272,18 @@
clearable
>
<el-option
v-for="(item,index) in typeList"
v-for="(item,index) in allDeparts"
:key="index"
:label="item.label"
:value="item.value"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="治疗疾病" prop="treat_disease">
<el-form-item label="治疗疾病" prop="treatDisease">
<el-col :span="24">
<el-input
size="small"
v-model="formData.treat_disease"
v-model="formData.treatDisease"
placeholder="请输入治疗疾病"
></el-input>
......@@ -291,14 +293,21 @@
</el-form-item>
</div>
<el-form-item label="有效期" prop="expired_time">
<el-form-item label="有效期" prop="expiredTime">
<el-col :span="13">
<el-input
<!-- <el-input
size="small"
v-model="formData.expired_time"
v-model="formData.expiredTime"
placeholder="请输入有效期"
style="width:70%;"
></el-input>
></el-input> -->
<el-date-picker
v-model="formData.expiredTime"
size="small"
format="yyyy-MM-dd HH:mm:ss"
type="date"
placeholder="选择日期">
</el-date-picker>
<span class="word-num"></span>
</el-col>
......@@ -311,21 +320,18 @@
:show-file-list="false"
:before-upload="beforeUploadPic1"
>
<img
v-if="formData.specification_url"
:src="formData.specification_url"
@mouseover.stop="imgMouseOver1=true"
class="bg-img"
/>
<img v-if="!formData.specification_url" class="bg-img" src="../../assets/image/small.png" />
<div
class="img-delete"
v-show="imgMouseOver1"
@click.stop="deleteImg(1)"
@mouseout.stop="imgMouseOver1=false"
>
<i class="el-icon-delete"></i>
<div class="file-pics" v-if="fileIntrList.length > 0" :key="index" v-for="(item,index) in fileIntrList">
<img :src="item.url" @mouseover.stop="intrIndex=index" class="bg-img"/>
<div
class="img-delete"
v-if="intrIndex==index"
@click.stop="deleteImg(item,fileIntrList)"
@mouseout.stop="intrIndex=-1"
>
<i class="el-icon-delete"></i>
</div>
</div>
<img class="bg-img" src="../../assets/image/small.png" />
<div class="limit-text">
<p>限制大小: 2M</p>
<!-- <p>最小尺寸:750*420</p> -->
......@@ -339,18 +345,18 @@
<div class="basic-item-icon">
<div class="part-tit">销售信息</div>
<div class="inline">
<el-form-item label="零售价" prop="name">
<el-form-item label="零售价" prop="costPrice">
<el-col :span="20">
<el-input
size="small"
v-model="formData.name"
v-model="formData.costPrice"
placeholder="请输入零售价"
></el-input>
<!-- <span class="word-num">{{(formData.name).replace(/\s+/g,"").length}}/60</span> -->
</el-col>
</el-form-item>
<el-form-item label="折扣价" prop="name">
<!-- <el-form-item label="折扣价" prop="name">
<el-col :span="20">
<el-input
size="small"
......@@ -358,9 +364,9 @@
placeholder="请输入折扣价"
></el-input>
<!-- <span class="word-num">{{(formData.name).replace(/\s+/g,"").length}}/60</span> -->
</el-col>
</el-form-item>
</el-form-item> -->
</div>
<div class="inline">
<el-form-item label="库存" prop="name">
......@@ -380,11 +386,11 @@
<!-- <span class="word-num">{{(formData.name).replace(/\s+/g,"").length}}/60</span> -->
</el-col>
</el-form-item>
<el-form-item label="条形码" prop="name">
<el-form-item label="条形码" prop="barCode">
<el-col :span="20">
<el-input
size="small"
v-model="formData.name"
v-model="formData.barCode"
placeholder="请输入条形码"
></el-input>
......@@ -438,6 +444,7 @@
let vm = null;
import { openLoading, closeLoading } from "../../utils/utils";
import { doUpload, getFilePath } from "../../utils/qiniu-util";
import { updateGoods ,updateStock,dosageAll,getDeparts} from '@/utils/goods';
import Cropper from '@/components/common/cropper.vue'
export default {
components: {
......@@ -462,9 +469,30 @@
placeholderTxt:'请输入减少的库存数量',
num:''
},
doseAll:[],
fileGoodsList:[],
fileIntrList:[],
intrIndex:-1,
isShowFileList:false,
headIndex:-1,
oneLever:[],
twoLever:[],
allDeparts:[],
threeLever:[{
categoryName: "默认",
id:0
}],
fourLever:[{
categoryName: "默认",
id:0
}],
fiveLever:[{
categoryName: "默认",
id:0
}],
stockDio:false,
curmbFirst: '云鹊店铺',
isGoods_image:true,
isgoodsImages:true,
isSpecification_url:true,
title:'',
typeList: [{
......@@ -479,26 +507,36 @@
}],
formData: {
id:'',
goods_name:'',
goods_description:'',
goods_image:'',
goods_type:'',
medic_common_name:'',
medic_goods_name:'',
categoryId:'',
categoryIdLevel2: '',
categoryIdLevel3: 0,
categoryIdLevel4: 0,
categoryIdLevel5: 0,
goodsName:'',
goodsDescription:'',
goodsImages:[],
goodsType:'',
medicCommonName:'',
medicGoodsName:'',
size:'',
dosage_id:null,
dosageId:null,
usage:'',
category_id_level2:'',
otc:'',
approval_number:'',
otc:false,
otc1:'',
approvalNumber:'',
manufacturer:'',
department:'',
expired_time:'',
expiredTime:'',
specification_url:'',
treat_disease:'',
bar_code:'',
discount_price:'',
treatDisease:'',
barCode:'',
discountPrice:'',
stock:0,
specificationImages:[],
goodsId:'',
costPrice:'',
decrStock:'',//减少库存
incrStock:'',//增加库存
},
showCropper: false,
currentOption: {
......@@ -519,7 +557,7 @@
oriUrl: '', // 原图
},
rules: {
goods_name: [
goodsName: [
{ required: true, message: "请输入商品名称", trigger: "blur" },
{
// min: 2,
......@@ -539,13 +577,13 @@
},
{ validator: checkProjectStr, trigger: "blur" }
],
goods_image: [
goodsImages: [
{ required: true, message: "请上传商品头图", trigger: "blur" }
],
goods_type:[
goodsType:[
{ required: true, message: "请选择商品类型", trigger: "change" }
],
medic_common_name:[
medicCommonName:[
{ required: true, message: "请输入商品通用名称", trigger: "blur" }
],
size:[
......@@ -554,28 +592,43 @@
manufacturer:[
{ required: true, message: "请输入生产厂家", trigger: "blur" }
],
approval_number:[
approvalNumber:[
{ required: true, message: "请输入批准文号", trigger: "blur" }
],
dosage_id:[
dosageId:[
{ required: true, message: "请选择剂型", trigger: "change" }
],
category_id_level2:[
categoryIdLevel2:[
{ required: true, message: "请选择药品类型", trigger: "blur" }
],
categoryIdLevel3:[
{ required: true, message: "请选择一级类目", trigger: "blur" }
],
categoryIdLevel4:[
{ required: true, message: "请选择二级类目", trigger: "blur" }
],
categoryIdLevel5:[
{ required: true, message: "请选择三级类目", trigger: "blur" }
],
otc:[
{ required: true, message: "请选择是否是处方", trigger: "blur" }
],
specification_url:[
{ required: true, message: "请上传药品说明书", trigger: "blur" }
],
// barCode: [
// { required: true, message: "请输入条形码", trigger: "blur" },
// ],
costPrice: [
{ required: true, message: "请输入零售价", trigger: "blur" },
],
dynamicFlag: [
{ required: true, message: "请选择内容发布权", trigger: "blur" },
]
},
imgMouseOver1: false,
uploadImgMessage1: false,//未上传图片,校验提示语
isMedic:false,
}
},
created() {
......@@ -583,10 +636,69 @@
console.log(this.$route)
const {id} = this.$route.query
this.title = id == 'add' ? '新增商品' : '编辑商品'
this.getLever(0,1)
dosageAll().then((res)=>{
this.doseAll = res.data
})
getDeparts().then((res)=>{
this.allDeparts = res.data
})
},
methods: {
getGoodsTypes(id,type){
if(id == 5 ){
this.isMedic = true;
this.getLever(id,type)
}else{
this.isMedic = false;
}
},
defaultArr(){
let a = [
{
categoryName: "默认",
id:0
}
]
return a
},
//获取分类
getLever(id,type){
this.GET("store/category/"+id).then(res => {
console.log(res)
if(type == 1){
this.oneLever = res.data
}else if(type == 2){
this.twoLever = res.data || this.defaultArr()
}else if(type == 3){
this.threeLever = res.data.length > 0 ? res.data : this.defaultArr()
this.formData.categoryIdLevel3 = ''
this.formData.categoryIdLevel4 = ''
this.formData.categoryIdLevel5 = ''
}else if(type == 4){
this.fourLever = res.data.length > 0 ? res.data : this.defaultArr()
this.formData.categoryIdLevel4 = ''
this.formData.categoryIdLevel5 = ''
}else if(type == 5){
this.fiveLever = res.data.length > 0 ? res.data : this.defaultArr()
}
});
},
updateStock(){
let r = /^\+?[1-9][0-9]*$/;
//造假 接口来了删掉
if(this.stock.num <= 0){
return this.$message({
message: '增加库存数量不得为0',
type: 'warning'
});
}
if(!r.test(this.stock.num)){
return this.$message({
message: '库存数量必须正整数',
......@@ -601,18 +713,17 @@
type: 'warning'
});
}
this.formData.stock -= this.stock.num
this.formData.decrStock = this.formData.stock
}else if(this.stock.type == 2){
this.formData.stock = Number(this.stock.num) + Number(this.formData.stock)
this.formData.incrStock = this.formData.stock
}
//造假 接口来了删掉
if(this.stock.num <= 0){
return this.$message({
message: '增加库存数量不得为0',
type: 'warning'
});
}
this.formData.stock = this.stock.num
this.stockDio = false
},
changeStock(type){
if(this.formData.stock == 0 && type == 1){
return;
......@@ -628,61 +739,100 @@
}
this.stockDio = true
},
complete() {
let formName = "formData";
this.formData.goodsImages = this.fileGoodsList
this.formData.specificationImages = this.fileIntrList
this.isgoodsImages = this.formData.goodsImages.length == 0 ? false :true;
this.isSpecification_url = this.formData.specificationImages.length == 0 ? false : true
this.formData.categoryId = this.formData.goodsType
this.formData.otc = this.formData.otc1 == 1 ? true : false
if(this.isMedic){
if(!this.isgoodsImages){
return;
}
if(!this.isSpecification_url){
return;
}
}
this.isGoods_image = !this.formData.goods_image ? false :true;
this.isSpecification_url = !this.formData.specification_url ? false : true
this.$refs[formName].validate((valid) => {
if (valid) {
alert('submit!');
//alert('submit!');
this.updateGoodsInfo()
} else {
console.log('error submit!!');
return false;
}
});
},
//表单校验
submitForm() {
let formName = "formData";
let flag = null;
if (!this.formData.headUrl){
this.uploadImgMessage1 = true;
}
this.$refs[formName].validate(valid => {
if (valid&&this.formData.headUrl!="") {
flag = true;
} else {
console.log("error submit!!");
flag = false;
//更新商品
updateGoodsInfo(){
this.formData.incrStock = 1000
updateGoods(this.formData).then((res)=>{
if (res.code !== '000000') {
return this.$message.error(res.message);
}
});
this.$emit('returnIsNext', flag);
vm.$message.success("操作成功");
})
},
beforeUploadPic(file) {
let vm = this;
let picTypes = ['image/jpeg','image/png']
//const isLt2M = file.size / 1024 / 1024 < fileLimit.size;
const isLt200k = file.size / 1024 < 200;
if (picTypes.indexOf(file.type) == -1) {
return this.$message.error("请上传jpegpng格式的图片");
}
// if (!isLt2M) {
// vm.$message.error("图片大小不符合规范,请根据规范上传图片 ");
// return;
// }
if (!isLt200k) {
return vm.$message.error("图片大小请控制在200k以内");
}
let _img = new FileReader();
_img.readAsDataURL(file);
openLoading(vm);
doUpload(vm, file, getFilePath(file, null), "preview4", "progress1", 1).then(function (path) {
closeLoading(vm);
console.log('上传成功后路径', path);
vm.formData.goods_image = path.fullPath
vm.$message.success("上传成功");
});
_img.onload = function (theFile) {
let image = new Image()
image.src = theFile.target.result
vm.slide2.oriUrl = theFile.target.result;
image.onload = function () {
let _this = this;
console.log(_this.width,_this.height)
// if (_this.width != fileLimit.width || _this.height != fileLimit.height) {
//if (_this.width == 750 && _this.height == 420) {
openLoading(vm);
doUpload(vm, file, getFilePath(file, null), "preview4", "progress1", 1).then(function (path) {
closeLoading(vm);
console.log('上传成功后路径', path);
// if (fileLimit.show == "uploadImgMessage1") {
// vm.uploadImgMessage1 = false;
// } else if (fileLimit.show == "uploadImgMessage2") {
// vm.uploadImgMessage2 = false;
// }
vm.fileGoodsList.push({url:path.fullPath,imageUrl:path.fullPath,imageName:''})
//vm.formData.goodsImages = path.fullPath
vm.$message.success("上传成功");
});
// } else {
// return vm.$message.error("图片尺寸不符合规范,请根据规范上传图片");
// }
};
};
// openLoading(vm);
// doUpload(vm, file, getFilePath(file, null), "preview4", "progress1", 1).then(function (path) {
// closeLoading(vm);
// console.log('上传成功后路径', path);
// vm.formData.goodsImages = path.fullPath
// vm.$message.success("上传成功");
// });
},
......@@ -726,43 +876,41 @@
image.onload = function () {
let _this = this;
// if (_this.width != fileLimit.width || _this.height != fileLimit.height) {
if (_this.width < fileLimit.width || _this.height < fileLimit.height) {
vm.$message.error("图片尺寸不符合规范,请根据规范上传图片");
return;
} else if(_this.width > fileLimit.width || _this.height > fileLimit.height){
vm.showCropper = true;
vm.currentOption.cvWidth = _this.width;
vm.currentOption.cvHeight = _this.height;
return;
} else {
// if (_this.width < fileLimit.width || _this.height < fileLimit.height) {
// vm.$message.error("图片尺寸不符合规范,请根据规范上传图片");
// return;
// } else if(_this.width > fileLimit.width || _this.height > fileLimit.height){
// vm.showCropper = true;
// vm.currentOption.cvWidth = _this.width;
// vm.currentOption.cvHeight = _this.height;
// return;
// } else {
openLoading(vm);
doUpload(vm, file, getFilePath(file, null), "preview4", "progress1", 1).then(function (path) {
closeLoading(vm);
console.log('上传成功后路径', path);
if (fileLimit.show == "uploadImgMessage1") {
vm.uploadImgMessage1 = false;
} else if (fileLimit.show == "uploadImgMessage2") {
vm.uploadImgMessage2 = false;
}
vm.formData[fileLimit.key] = path.fullPath;
vm.formData[fileLimit.more] = {
attachmentName: path.name,
attachmentExt: path.ext,
attachmentSize: path.size
};
vm.fileIntrList.push({url:path.fullPath,imageUrl:path.fullPath})
vm.$message.success("上传成功");
});
}
//}
};
};
return isJPG && isLt2M;
},
//删除图片
deleteImg(type) {
if (type == 1) {
vm.formData.headUrl = "";
vm.imgMouseOver1 = false;
deleteImg(item,d) {
let index = ''
for(let i=0;i<d.length;i++){
if(item.url == d[i].url){
index = i;
break
}
}
d.splice(index,1)
// if (type == 1) {
// vm.formData.headUrl = "";
// vm.imgMouseOver1 = false;
// }
},
// 获取裁剪的图片数据
getCropImg(argument) {
......@@ -970,4 +1118,18 @@
padding-bottom: 20px;
}
}
.fast-opt{
font-size: 12px;
padding:0 10px;
cursor: pointer;
color:#449284
}
.file-pics{
display: inline-block;
width: 84px;
height: 100px;
float:left;
margin-right: 15px;
position: relative;
}
</style>
......@@ -7,22 +7,22 @@
<el-row :gutter="30" type="flex" style="margin-top: 10px">
<el-col :span="18">
<el-form-item label="商品名称">
<el-input v-model="searchForm.name" size="small" placeholder="请输入商品名称"></el-input>
<el-input v-model="searchForm.goodsName" size="small" placeholder="请输入商品名称"></el-input>
</el-form-item>
<el-form-item label="商品ID">
<el-input v-model="searchForm.id" size="small" placeholder="请输入商品ID"></el-input>
</el-form-item>
<el-form-item label="商品类型">
<el-select
v-model="searchForm.type"
v-model="searchForm.goodsType"
placeholder="请选择商品类型"
size="small"
clearable>
<el-option
v-for="(item,index) in typeList"
v-for="(item,index) in goodsTypes"
:key="index"
:label="item.label"
:value="item.value"
:label="item.categoryName"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
......@@ -34,8 +34,8 @@
</el-row>
<el-row :gutter="30" type="flex" style="margin-top: 10px">
<el-col :span="18">
<el-button type="primary" size="small" @click="batchOpt(1)">批量上架</el-button>
<el-button type="primary" size="small" @click="batchOpt(2)">批量下架</el-button>
<el-button type="primary" size="small" @click="batchOpt('on')">批量上架</el-button>
<el-button type="primary" size="small" @click="batchOpt('off')">批量下架</el-button>
</el-col>
<el-col :span="6" style="text-align: right">
......@@ -45,7 +45,7 @@
</el-row>
</el-form>
<el-table :data="tableData" class="item-table" style="width: 100%;margin-top: 10px;" @selection-change="handleSelectionChange">
<el-table ref="multipleTable" :data="tableData" class="item-table" style="width: 100%;margin-top: 10px;" @selection-change="handleSelectionChange">
<el-table-column
type="selection"
fixed
......@@ -53,23 +53,23 @@
</el-table-column>
<el-table-column prop="id" label="商品ID" width="120" align="center"></el-table-column>
<el-table-column prop="name" label="商品名称" min-width="140" align="center"></el-table-column>
<el-table-column prop="type" label="商品类型" min-width="100" align="center">
<el-table-column prop="type" label="商品类型" width="100" align="center">
<template slot-scope="scope">
<span>{{ scope.row.type | dynamicFlagStatus }}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="商品状态" min-width="100" align="center">
<el-table-column prop="status" label="商品状态" width="100" align="center">
<template slot-scope="scope">
<span>{{ scope.row.status | rangeStatus }}</span>
</template>
</el-table-column>
<el-table-column prop="num" label="销量" min-width="120" align="center">
<el-table-column prop="num" label="销量" width="120" align="center">
111
</el-table-column>
<el-table-column prop="num" label="规格" min-width="120" align="center">
<el-table-column prop="num" label="规格" width="120" align="center">
111
</el-table-column>
<el-table-column prop="num" label="价格" min-width="120" align="center">
<el-table-column prop="num" label="价格" width="120" align="center">
111
</el-table-column>
<el-table-column prop="createdTime" label="发布时间" width="150" align="center">
......@@ -144,6 +144,7 @@
import { openLoading, closeLoading } from "../../utils/utils";
import BreadCrumb from "@/components/breadcrumb.vue";
import { getRangeList,updateRangeStatus} from "../../utils/yqrange/yqrangeApi";
import { getGoodsList,batchOnOff} from '@/utils/goods';
export default {
components: {
BreadCrumb
......@@ -155,17 +156,27 @@
showNewFlag: false,
batchDialog:false,
searchForm: {
name: '',
id: '',
type: '',
pageNo: 1,
pageSize: 10,
goodsIdList:[],
goodsName :'',
goodsType :0,
pageNo:1,
pageSize: 10,
},
selectList:[],
batchParm:{
batchUpdateSaleStatusReq: {
goodsIdList: [],
userId: 0
},
onOff: ""
},
fileList:[],
totalRows: 0,
tableData: [
{}
],
goodsTypes:[],
typeList: [{
label: '药品',
value: '1',
......@@ -179,20 +190,49 @@
}
},
created() {
// this.initPrivilege();
// this.searchList();
this.getLists()
this.getLever()
},
methods: {
handlePreview(){},
handleRemove(){},
beforeRemove(){},
handleSelectionChange(){
handleSelectionChange(val){
console.log(val)
this.selectList = val
},
getLever(id=0){
this.GET("store/category/"+id).then(res => {
console.log(res)
this.goodsTypes = res.data
});
},
getLists(){
getGoodsList(this.searchForm).then((res)=>{
})
},
//批量 上下架操作
batchOpt(type){
if(type == 3){//批量导入
this.batchDialog = true
}else{
if(this.selectList.length == 0){
return this.$message({
message: '请选择商品',
type: 'warning'
});
}
this.batchParm.onOff = type
this.batchParm.batchUpdateSaleStatusReq.goodsIdList =[1] || this.selectList
batchOnOff(this.batchParm).then((res)=>{
if(res.code == '000000'){
this.selectList = []
this.$refs.multipleTable.clearSelection();
this.getLists()
}
})
}
},
edit(row){
......@@ -268,15 +308,19 @@
searchList() {
openLoading(this);
let params = this.searchForm;
this.getLists()
},
resetForm() {
this.searchForm = {
name: '',
id: '',
type: ''
goodsIdList:[],
goodsName:'',
goodsType:'',
pageNo:1,
pageSize: 10,
};
this.searchList();
this.getLists();
},
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册