|
@@ -259,7 +259,7 @@
|
|
|
></el-option>
|
|
|
</select-all>
|
|
|
</el-form-item> -->
|
|
|
- <el-form-item label="管理端APP可售分部" prop="educationShowOrganId">
|
|
|
+ <el-form-item label="移动端可售分部" prop="educationShowOrganId">
|
|
|
<select-all
|
|
|
v-model.trim="form.educationShowOrganId"
|
|
|
filterable
|
|
@@ -418,7 +418,13 @@
|
|
|
<img v-if="form.image" :src="form.image" class="avatar" />
|
|
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
|
|
</el-upload> -->
|
|
|
- <image-cropper :options="cropperOptions" :disabled="pageDisabled" :imgSize="2" :imageUrl="form.image" @crop-upload-success="cropSuccess" />
|
|
|
+ <image-cropper
|
|
|
+ :options="cropperOptions"
|
|
|
+ :disabled="pageDisabled"
|
|
|
+ :imgSize="2"
|
|
|
+ :imageUrl="form.image"
|
|
|
+ @crop-upload-success="cropSuccess"
|
|
|
+ />
|
|
|
<p class="imageSize">
|
|
|
<!-- 仅支持上传尺寸为:{{ imageWidthM }}x{{ imageHeightM }}的图片 -->
|
|
|
请上传大小2M以内,格式为jpg、png、gif图片
|
|
@@ -456,11 +462,11 @@ import {
|
|
|
categoryListTree,
|
|
|
goodsAdd,
|
|
|
goodsUpdate,
|
|
|
- goodsSingleQuery,
|
|
|
+ goodsSingleQuery
|
|
|
} from "@/api/businessManager";
|
|
|
import { getToken, getTenantId } from "@/utils/auth";
|
|
|
import { goodsType, stockType } from "@/utils/searchArray";
|
|
|
-import ImageCropper from '@/components/ImageCropper'
|
|
|
+import ImageCropper from "@/components/ImageCropper";
|
|
|
let validPrice = (rule, value, callback) => {
|
|
|
if ((value == "" && typeof value == "string") || value == null) {
|
|
|
callback(new Error("请输入金额"));
|
|
@@ -494,11 +500,11 @@ export default {
|
|
|
create: "添加",
|
|
|
update: "修改",
|
|
|
look: "查看",
|
|
|
- copy: "复制",
|
|
|
+ copy: "复制"
|
|
|
},
|
|
|
pageDisabled: false,
|
|
|
headers: {
|
|
|
- Authorization: getToken(),
|
|
|
+ Authorization: getToken()
|
|
|
},
|
|
|
form: {
|
|
|
sn: null,
|
|
@@ -528,7 +534,7 @@ export default {
|
|
|
educationShowOrganId: null,
|
|
|
courseFeeShowOrganId: null,
|
|
|
memberFeeShowOrganId: null,
|
|
|
- replacementShowOrganId: null,
|
|
|
+ replacementShowOrganId: null
|
|
|
},
|
|
|
rules: {
|
|
|
sn: [{ required: true, message: "请输入商品货号", trigger: "blur" }],
|
|
@@ -536,138 +542,138 @@ export default {
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请输入品牌",
|
|
|
- trigger: "blur",
|
|
|
+ trigger: "blur"
|
|
|
},
|
|
|
{
|
|
|
min: 2,
|
|
|
max: 30,
|
|
|
message: "长度在 2 到 30 个字符",
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
+ trigger: "blur"
|
|
|
+ }
|
|
|
],
|
|
|
supplyChannel: [
|
|
|
- { required: true, message: "请输入备查货号", trigger: "blur" },
|
|
|
+ { required: true, message: "请输入备查货号", trigger: "blur" }
|
|
|
],
|
|
|
name: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请输入商品名称",
|
|
|
- trigger: "blur",
|
|
|
+ trigger: "blur"
|
|
|
},
|
|
|
{
|
|
|
min: 2,
|
|
|
max: 30,
|
|
|
message: "长度在 2 到 30 个字符",
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
+ trigger: "blur"
|
|
|
+ }
|
|
|
],
|
|
|
type: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请选择商品分类",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
+ trigger: "change"
|
|
|
+ }
|
|
|
],
|
|
|
goodsCategoryId: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请选择商品类型",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
+ trigger: "change"
|
|
|
+ }
|
|
|
],
|
|
|
organIdList: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请选择所属分部",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
+ trigger: "change"
|
|
|
+ }
|
|
|
],
|
|
|
specification: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请输入商品型号",
|
|
|
- trigger: "blur",
|
|
|
+ trigger: "blur"
|
|
|
},
|
|
|
{
|
|
|
min: 2,
|
|
|
max: 30,
|
|
|
message: "长度在 2 到 30 个字符",
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
+ trigger: "blur"
|
|
|
+ }
|
|
|
],
|
|
|
stockCount: [
|
|
|
- { required: true, validator: validStock, trigger: "blur" },
|
|
|
+ { required: true, validator: validStock, trigger: "blur" }
|
|
|
],
|
|
|
taxStockCount: [
|
|
|
- { required: true, validator: validStock, trigger: "blur" },
|
|
|
+ { required: true, validator: validStock, trigger: "blur" }
|
|
|
],
|
|
|
stockType: [
|
|
|
- { required: true, message: "请选择库存类型", trigger: "change" },
|
|
|
+ { required: true, message: "请选择库存类型", trigger: "change" }
|
|
|
],
|
|
|
marketPrice: [
|
|
|
{
|
|
|
required: true,
|
|
|
validator: validPrice,
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
+ trigger: "blur"
|
|
|
+ }
|
|
|
],
|
|
|
discountPrice: [
|
|
|
{
|
|
|
required: true,
|
|
|
validator: validPrice,
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
+ trigger: "blur"
|
|
|
+ }
|
|
|
],
|
|
|
groupPurchasePrice: [
|
|
|
{
|
|
|
required: true,
|
|
|
validator: validPrice,
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
+ trigger: "blur"
|
|
|
+ }
|
|
|
],
|
|
|
clientShow: [
|
|
|
- { required: true, message: "请选择学员是否展示", trigger: "change" },
|
|
|
+ { required: true, message: "请选择学员是否展示", trigger: "change" }
|
|
|
],
|
|
|
replacementShow: [
|
|
|
- { required: true, message: "是否参与乐器置换", trigger: "change" },
|
|
|
+ { required: true, message: "是否参与乐器置换", trigger: "change" }
|
|
|
],
|
|
|
educationalShow: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请选择教务端是否展示",
|
|
|
- trigger: "change",
|
|
|
- },
|
|
|
+ trigger: "change"
|
|
|
+ }
|
|
|
],
|
|
|
musicGroupShow: [
|
|
|
- { required: true, message: "请选择乐团是否展示", trigger: "change" },
|
|
|
+ { required: true, message: "请选择乐团是否展示", trigger: "change" }
|
|
|
],
|
|
|
courseViewType: [
|
|
|
- { required: true, message: "请选乐团收费模式", trigger: "change" },
|
|
|
+ { required: true, message: "请选乐团收费模式", trigger: "change" }
|
|
|
],
|
|
|
stockWarning: [
|
|
|
- { required: true, message: "请选择是否库存预警", trigger: "change" },
|
|
|
+ { required: true, message: "请选择是否库存预警", trigger: "change" }
|
|
|
],
|
|
|
image: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请选择图片",
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
+ trigger: "blur"
|
|
|
+ }
|
|
|
],
|
|
|
brief: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请输入商品描述",
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
+ trigger: "blur"
|
|
|
+ }
|
|
|
],
|
|
|
desc: [
|
|
|
{
|
|
|
required: true,
|
|
|
message: "请输入商品详情",
|
|
|
- trigger: "blur",
|
|
|
- },
|
|
|
- ],
|
|
|
+ trigger: "blur"
|
|
|
+ }
|
|
|
+ ]
|
|
|
},
|
|
|
Fsearch: null,
|
|
|
Frules: null,
|
|
@@ -680,8 +686,8 @@ export default {
|
|
|
autoCropHeight: 300, //默认生成截图框高度
|
|
|
fixedBox: true, //是否固定截图框大小 不允许改变
|
|
|
previewsCircle: false, //预览图是否是圆形
|
|
|
- title: '商品图片', //模态框上显示的标题
|
|
|
- },
|
|
|
+ title: "商品图片" //模态框上显示的标题
|
|
|
+ }
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
@@ -706,7 +712,7 @@ export default {
|
|
|
this.form.image = data.data.url;
|
|
|
},
|
|
|
onSubmit(formName) {
|
|
|
- this.$refs[formName].validate((valid) => {
|
|
|
+ this.$refs[formName].validate(valid => {
|
|
|
if (valid) {
|
|
|
let tempForm = JSON.parse(JSON.stringify(this.form));
|
|
|
if (tempForm.courseViewType) {
|
|
@@ -719,21 +725,25 @@ export default {
|
|
|
tempForm.studentShowOrganId = tempForm.studentShowOrganId.join(",");
|
|
|
}
|
|
|
if (tempForm.educationShowOrganId) {
|
|
|
- tempForm.educationShowOrganId =
|
|
|
- tempForm.educationShowOrganId.join(",");
|
|
|
+ tempForm.educationShowOrganId = tempForm.educationShowOrganId.join(
|
|
|
+ ","
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
if (tempForm.courseFeeShowOrganId) {
|
|
|
- tempForm.courseFeeShowOrganId =
|
|
|
- tempForm.courseFeeShowOrganId.join(",");
|
|
|
+ tempForm.courseFeeShowOrganId = tempForm.courseFeeShowOrganId.join(
|
|
|
+ ","
|
|
|
+ );
|
|
|
}
|
|
|
if (tempForm.memberFeeShowOrganId) {
|
|
|
- tempForm.memberFeeShowOrganId =
|
|
|
- tempForm.memberFeeShowOrganId.join(",");
|
|
|
+ tempForm.memberFeeShowOrganId = tempForm.memberFeeShowOrganId.join(
|
|
|
+ ","
|
|
|
+ );
|
|
|
}
|
|
|
if (tempForm.replacementShowOrganId) {
|
|
|
- tempForm.replacementShowOrganId =
|
|
|
- tempForm.replacementShowOrganId.join(",");
|
|
|
+ tempForm.replacementShowOrganId = tempForm.replacementShowOrganId.join(
|
|
|
+ ","
|
|
|
+ );
|
|
|
}
|
|
|
if (
|
|
|
!tempForm.studentShowOrganId &&
|
|
@@ -754,11 +764,11 @@ export default {
|
|
|
tempForm.stockCount = 0;
|
|
|
tempForm.taxStockCount = 0;
|
|
|
tempForm.status = "NO"; // 默认上架
|
|
|
- goodsAdd(tempForm).then((res) => {
|
|
|
+ goodsAdd(tempForm).then(res => {
|
|
|
this.messageTips("保存", res);
|
|
|
});
|
|
|
} else if (this.pageType == "update") {
|
|
|
- goodsUpdate(tempForm).then((res) => {
|
|
|
+ goodsUpdate(tempForm).then(res => {
|
|
|
this.messageTips("保存", res);
|
|
|
});
|
|
|
}
|
|
@@ -767,7 +777,7 @@ export default {
|
|
|
let isError = document.getElementsByClassName("is-error");
|
|
|
isError[0].scrollIntoView({
|
|
|
block: "center",
|
|
|
- behavior: "smooth",
|
|
|
+ behavior: "smooth"
|
|
|
});
|
|
|
});
|
|
|
return false;
|
|
@@ -782,8 +792,8 @@ export default {
|
|
|
path: "/shopList",
|
|
|
query: {
|
|
|
pageInfo: this.Frules,
|
|
|
- searchForm: this.Fsearch,
|
|
|
- },
|
|
|
+ searchForm: this.Fsearch
|
|
|
+ }
|
|
|
});
|
|
|
} else {
|
|
|
this.$message.error(res.msg);
|
|
@@ -792,7 +802,7 @@ export default {
|
|
|
onCancel() {
|
|
|
this.$store.dispatch("delVisitedViews", this.$route);
|
|
|
this.$router.push({
|
|
|
- path: "/shopList",
|
|
|
+ path: "/shopList"
|
|
|
});
|
|
|
},
|
|
|
onReSet(formName) {
|
|
@@ -822,13 +832,13 @@ export default {
|
|
|
stockWarning: null,
|
|
|
image: null,
|
|
|
brief: null,
|
|
|
- desc: null,
|
|
|
+ desc: null
|
|
|
};
|
|
|
if (this.$refs["form"]) {
|
|
|
this.$refs["form"].resetFields();
|
|
|
}
|
|
|
} else {
|
|
|
- goodsSingleQuery(this.id).then((res) => {
|
|
|
+ goodsSingleQuery(this.id).then(res => {
|
|
|
if (res.code == 200) {
|
|
|
let result = res.data;
|
|
|
let courseViewType = null;
|
|
@@ -893,7 +903,7 @@ replacementShowOrganId: 6,7 */
|
|
|
image: result.image,
|
|
|
brief: result.brief,
|
|
|
desc: result.desc,
|
|
|
- replacementShow: result.replacementShow,
|
|
|
+ replacementShow: result.replacementShow
|
|
|
};
|
|
|
}
|
|
|
});
|
|
@@ -902,15 +912,15 @@ replacementShowOrganId: 6,7 */
|
|
|
getCatagory() {
|
|
|
categoryListTree({
|
|
|
delFlag: 0,
|
|
|
- rows: 9999,
|
|
|
- }).then((res) => {
|
|
|
+ rows: 9999
|
|
|
+ }).then(res => {
|
|
|
let result = res.data;
|
|
|
if (res.code == 200) {
|
|
|
let tempArray = [];
|
|
|
- result.rows.forEach((row) => {
|
|
|
+ result.rows.forEach(row => {
|
|
|
tempArray.push({
|
|
|
label: row.name,
|
|
|
- value: row.id,
|
|
|
+ value: row.id
|
|
|
});
|
|
|
});
|
|
|
this.categoryList = tempArray;
|
|
@@ -923,7 +933,7 @@ replacementShowOrganId: 6,7 */
|
|
|
beforeAvatarUpload(file) {
|
|
|
const imageType = {
|
|
|
"image/png": true,
|
|
|
- "image/jpeg": true,
|
|
|
+ "image/jpeg": true
|
|
|
};
|
|
|
const isImage = imageType[file.type];
|
|
|
const isLt2M = file.size / 1024 / 1024 < 2;
|
|
@@ -932,7 +942,7 @@ replacementShowOrganId: 6,7 */
|
|
|
const _URL = window.URL || window.webkitURL;
|
|
|
const isSize = new Promise((resolve, reject) => {
|
|
|
const img = new Image();
|
|
|
- img.onload = function () {
|
|
|
+ img.onload = function() {
|
|
|
if (imageWidth && imageHeigh) {
|
|
|
this.width === imageWidth && this.height === imageHeigh
|
|
|
? resolve()
|
|
@@ -954,7 +964,7 @@ replacementShowOrganId: 6,7 */
|
|
|
() => {
|
|
|
return file;
|
|
|
},
|
|
|
- (src) => {
|
|
|
+ src => {
|
|
|
this.$message.error(src);
|
|
|
this.uploadImgLoading = false;
|
|
|
return Promise.reject();
|
|
@@ -967,8 +977,8 @@ replacementShowOrganId: 6,7 */
|
|
|
this.$message.error("上传头像图片大小不能超过 2MB!");
|
|
|
}
|
|
|
return isImage && isLt2M && isSize;
|
|
|
- },
|
|
|
- },
|
|
|
+ }
|
|
|
+ }
|
|
|
};
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|