5个文件已修改
304 ■■■■■ 已修改文件
manager/src/main.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
manager/src/views/order/order/orderList.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manager/src/views/promotions/coupon/coupon-publish.vue 190 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
seller/src/views/goods/goods-seller/goodsOperationFirst.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
seller/src/views/goods/goods-seller/goodsOperationSec.vue 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manager/src/main.js
@@ -50,7 +50,7 @@
  window.open(src, "_blank");
};
Vue.prototype.endpoint = "https://lmk-1356772813.cos.ap-chengdu.myqcloud.com"
Vue.prototype.QRcodeBaseUrl = "https://myk.9village.cn"
Vue.prototype.QRcodeBaseUrl = "https://www.meiyikuang.com"
Vue.prototype.wapLinkTo = function (goodsId, skuId) {
  // app端二维码
  if (skuId) {
manager/src/views/order/order/orderList.vue
@@ -199,7 +199,25 @@
      <Modal width="1200px" v-model="picModelFlag">
        <ossManage @callback="callbackSelected" :isComponent="true" :initialize="picModelFlag" ref="ossManage" />
      </Modal>
      <Modal
        v-model="showGeneralQrCode"
        title="二维码"
        width="800"
        :mask-closable="false"
        :loading="codeLoading"
      >
        <vue-qr
          :text="QRCodeUrl"
          :margin="0"
          colorDark="#000"
          colorLight="#fff"
          :size="150"
        ></vue-qr>
        <div slot="footer">
          <Button type="text" @click="closeGeneralQrCode">关闭</Button>
          <!--          <Button type="primary" @click="generalQrCode">确认</Button>-->
        </div>
      </Modal>
      <multipleMap ref="map" @callback="selectedRegion" />
    </Card>
  </div>
@@ -212,12 +230,14 @@
import JsonExcel from "vue-json-excel";
import * as API_Member from "@/api/member.js";
import { getTags } from "@/api/tag.js";
import vueQr from "vue-qr";
export default {
  name: "orderList",
  components: {
    "download-excel": JsonExcel,
    ossManage,
    multipleMap,
    "vue-qr": vueQr,
  },
  data() {
    return {
@@ -444,6 +464,24 @@
                )
              );
            }
            // 根据订单状态为'PAID'时显示额外操作按钮
            if (params.row.deliverStatus === 'UNDELIVERED') {
              buttons.push(
                h(
                  "Button",
                  {
                    props: { type: "primary", size: "small" },
                    style: { marginRight: "5px" },
                    on: {
                      click: () => {
                        this.handlerEditorQrcode(params.row);
                      },
                    },
                  },
                  "修改地址二维码"
                )
              );
            }
            return h('div', buttons);
          },
@@ -479,9 +517,26 @@
      options: [],
      titleColor:'#333', // 默认标题颜色
      submitDisabled:false,
      QRCodeUrl:'',
      showGeneralQrCode:false,
      codeLoading:false,
    };
  },
  methods: {
    closeGeneralQrCode(){
      this.showGeneralQrCode = false;
    },
    handlerEditorQrcode(row){
      this.QRCodeUrl = '';
      this.showGeneralQrCode = true
      this.codeLoading = true;
      //获得商品对应的第一个skuid
      this.codeLoading = false;
      this.QRCodeUrl = this.QRcodeBaseUrl+ '/scanpage/editOrderAddress'+'?orderSn='+row.sn
      console.log(this.QRCodeUrl);
    },
    // 选中的图片
    callbackSelected(val) {
      console.log(val)
manager/src/views/promotions/coupon/coupon-publish.vue
@@ -6,24 +6,12 @@
          <h4>基本信息</h4>
          <div class="form-item-view">
            <FormItem label="活动名称" prop="promotionName">
              <Input
                :disabled="disabled"
                type="text"
                v-model="form.promotionName"
                placeholder="活动名称"
                clearable
                style="width: 260px"
              />
              <Input :disabled="disabled" type="text" v-model="form.promotionName" placeholder="活动名称" clearable
                style="width: 260px" />
            </FormItem>
            <FormItem label="优惠券名称" prop="couponName">
              <Input
                :disabled="disabled"
                type="text"
                v-model="form.couponName"
                placeholder="优惠券名称"
                clearable
                style="width: 260px"
              />
              <Input :disabled="disabled" type="text" v-model="form.couponName" placeholder="优惠券名称" clearable
                style="width: 260px" />
            </FormItem>
            <FormItem label="优惠券类型" prop="couponType">
              <Select :disabled="disabled" v-model="form.couponType" style="width: 260px">
@@ -31,30 +19,14 @@
                <Option value="PRICE">减免现金</Option>
              </Select>
            </FormItem>
            <FormItem
              label="折扣"
              prop="couponDiscount"
              v-if="form.couponType == 'DISCOUNT'"
            >
              <Input
                :disabled="disabled"
                type="number"
                v-model="form.couponDiscount"
                placeholder="折扣"
                clearable
                style="width: 260px"
              />
            <FormItem label="折扣" prop="couponDiscount" v-if="form.couponType == 'DISCOUNT'">
              <Input :disabled="disabled" type="number" v-model="form.couponDiscount" placeholder="折扣" clearable
                style="width: 260px" />
              <span class="describe">请输入0-10之间数字,可以输入一位小数</span>
            </FormItem>
            <FormItem label="面额" prop="price" v-if="form.couponType == 'PRICE'">
              <Input
                :disabled="disabled"
                type="text"
                v-model="form.price"
                placeholder="面额"
                clearable
                style="width: 260px"
              />
              <Input :disabled="disabled" type="text" v-model="form.price" placeholder="面额" clearable
                style="width: 260px" />
            </FormItem>
            <FormItem label="活动类型" prop="getType">
              <Select :disabled="disabled" v-model="form.getType" style="width: 260px">
@@ -64,63 +36,37 @@
            </FormItem>
            <FormItem label="店铺承担比例" prop="storeCommission">
              <Input
                :disabled="disabled"
                v-model="form.storeCommission"
                placeholder="店铺承担比例"
                style="width: 260px"
              >
                <span slot="append">%</span>
              <Input :disabled="disabled" v-model="form.storeCommission" placeholder="店铺承担比例" style="width: 260px">
              <span slot="append">%</span>
              </Input>
              <span class="describe">店铺承担比例,输入0-100之间数值</span>
            </FormItem>
            <FormItem label="发放数量" prop="publishNum" v-if="form.getType === 'FREE'">
              <Input
                :disabled="disabled"
                v-model="form.publishNum"
                placeholder="发放数量"
                style="width: 260px"
              />
              <Input :disabled="disabled" v-model="form.publishNum" placeholder="发放数量" style="width: 260px" />
              <div class="tips">如果发放数量为0时,则代表不限制发放数量</div>
            </FormItem>
            <FormItem
              label="领取数量限制"
              prop="couponLimitNum"
              v-if="form.getType === 'FREE'"
            >
              <Input
                :disabled="disabled"
                v-model="form.couponLimitNum"
                placeholder="领取限制"
                clearable
                style="width: 260px"
              />
            <FormItem label="领取数量限制" prop="couponLimitNum" v-if="form.getType === 'FREE'">
              <Input :disabled="disabled" v-model="form.couponLimitNum" placeholder="领取限制" clearable
                style="width: 260px" />
              <div class="tips">如果领取数量为0时,则代表不限制领取数量</div>
            </FormItem>
            <FormItem label="范围描述" prop="description">
              <Input
                :disabled="disabled"
                v-model="form.description"
                type="textarea"
                :rows="4"
                maxlength="50"
                show-word-limit
                clearable
                style="width: 260px"
              />
              <Input :disabled="disabled" v-model="form.description" type="textarea" :rows="4" maxlength="50"
                show-word-limit clearable style="width: 260px" />
            </FormItem>
          </div>
          <h4>使用限制</h4>
          <div class="form-item-view">
            <FormItem label="限制单个商品使用" prop="goodsUseLimitNum">
              <Select :disabled="disabled" v-model="form.goodsUseLimitNum" style="width: 260px">
                <Option value="0">不限制</Option>
                <Option value="1">限制</Option>
              </Select>
            </FormItem>
            <FormItem label="消费门槛" prop="consumeThreshold">
              <Input
                :disabled="disabled"
                type="text"
                v-model="form.consumeThreshold"
                placeholder="消费门槛"
                clearable
                style="width: 260px"
              />
              <Input :disabled="disabled" type="text" v-model="form.consumeThreshold" placeholder="消费门槛" clearable
                style="width: 260px" />
            </FormItem>
            <FormItem label="有效期" prop="rangeTime">
              <div v-if="form.getType == 'ACTIVITY'">
@@ -130,26 +76,14 @@
                </RadioGroup>
              </div>
              <div v-if="rangeTimeType == 1">
                <DatePicker
                  :disabled="disabled"
                  type="datetimerange"
                  v-model="form.rangeTime"
                  format="yyyy-MM-dd HH:mm:ss"
                  placeholder="请选择"
                  :options="options"
                  style="width: 260px"
                >
                <DatePicker :disabled="disabled" type="datetimerange" v-model="form.rangeTime"
                  format="yyyy-MM-dd HH:mm:ss" placeholder="请选择" :options="options" style="width: 260px">
                </DatePicker>
              </div>
              <div class="effectiveDays" v-if="rangeTimeType == 0">
                领取当天开始
                <InputNumber
                  :disabled="disabled"
                  v-model="form.effectiveDays"
                  :min="1"
                  style="width: 100px"
                  :max="365"
                />
                <InputNumber :disabled="disabled" v-model="form.effectiveDays" :min="1" style="width: 100px"
                  :max="365" />
                天内有效(1-365间的整数)
              </div>
            </FormItem>
@@ -158,62 +92,30 @@
              <RadioGroup type="button" button-style="solid" v-model="form.scopeType">
                <Radio :disabled="disabled" label="ALL">全品类</Radio>
                <Radio :disabled="disabled" label="PORTION_GOODS">指定商品</Radio>
                <Radio :disabled="disabled" label="PORTION_GOODS_CATEGORY"
                  >部分商品分类</Radio
                >
                <Radio :disabled="disabled" label="PORTION_GOODS_CATEGORY">部分商品分类</Radio>
              </RadioGroup>
            </FormItem>
            <FormItem style="width: 100%" v-if="form.scopeType == 'PORTION_GOODS'">
              <div style="display: flex; margin-bottom: 10px">
                <Button :disabled="disabled" type="primary" @click="openSkuList"
                  >选择商品</Button
                >
                <Button
                  :disabled="disabled"
                  type="error"
                  ghost
                  style="margin-left: 10px"
                  @click="delSelectGoods"
                  >批量删除</Button
                >
                <Button :disabled="disabled" type="primary" @click="openSkuList">选择商品</Button>
                <Button :disabled="disabled" type="error" ghost style="margin-left: 10px"
                  @click="delSelectGoods">批量删除</Button>
              </div>
              <Table
                border
                :columns="columns"
                :data="form.promotionGoodsList"
                @on-selection-change="changeSelect"
              >
              <Table border :columns="columns" :data="form.promotionGoodsList" @on-selection-change="changeSelect">
                <template slot-scope="{ row }" slot="QRCode">
                  <img
                    :src="row.QRCode || '../../../assets/lili.png'"
                    width="50px"
                    height="50px"
                    alt=""
                  />
                  <img :src="row.QRCode || '../../../assets/lili.png'" width="50px" height="50px" alt="" />
                </template>
              </Table>
            </FormItem>
            <FormItem v-if="form.scopeType == 'PORTION_GOODS_CATEGORY'">
              <Cascader
                :disabled="disabled"
                :data="goodsCategoryList"
                style="width: 260px"
                v-model="form.scopeIdGoods"
              ></Cascader>
              <Cascader :disabled="disabled" :data="goodsCategoryList" style="width: 260px" v-model="form.scopeIdGoods">
              </Cascader>
            </FormItem>
            <div>
              <Button :disabled="disabled" type="text" @click="closeCurrentPage"
                >返回</Button
              >
              <Button
                :disabled="disabled"
                type="primary"
                :loading="submitLoading"
                @click="handleSubmit"
                >提交</Button
              >
              <Button :disabled="disabled" type="text" @click="closeCurrentPage">返回</Button>
              <Button :disabled="disabled" type="primary" :loading="submitLoading" @click="handleSubmit">提交</Button>
            </div>
          </div>
        </div>
@@ -243,10 +145,10 @@
      handler(val) {
        if (val == "FREE") {
          this.rangeTimeType = 1;
        }else{
        } else {
          this.rangeTimeType = 0;
        }
        if(this.rangeTimeType == 0){
        if (this.rangeTimeType == 0) {
          delete this.formRule.rangeTime
        }
      },
@@ -307,7 +209,8 @@
        promotionGoodsList: [],
        scopeIdGoods: [],
        rangeDayType: "",
        effectiveDays:1,
        effectiveDays: 1,
        goodsUseLimitNum: "0"
      },
      id: this.$route.query.id, // 优惠券id
      submitLoading: false, // 添加或编辑提交状态
@@ -359,7 +262,7 @@
          key: "price",
          minWidth: 40,
          render: (h, params) => {
            return h("priceColorScheme", {props:{value:params.row.price,color:this.$mainColor}} );
            return h("priceColorScheme", { props: { value: params.row.price, color: this.$mainColor } });
          },
        },
        {
@@ -671,10 +574,11 @@
  font-size: 12px;
  color: #999;
  > * {
  >* {
    margin: 0 4px;
  }
}
.tips {
  font-size: 12px;
  color: #999;
seller/src/views/goods/goods-seller/goodsOperationFirst.vue
@@ -109,13 +109,13 @@
          type: "PHYSICAL_GOODS",
          check: false,
        },
        // {
        //   title: "虚拟商品",
        //   img: require("@/assets/goodsType2.png"),
        //   desc: "虚拟核验,无需物流",
        //   type: "VIRTUAL_GOODS",
        //   check: false,
        // },
        {
          title: "虚拟商品",
          img: require("@/assets/goodsType2.png"),
          desc: "虚拟核验,无需物流",
          type: "VIRTUAL_GOODS",
          check: false,
        },
        // {
        //   title: "商品模板导入",
        //   img: require("@/assets/goodsTypeTpl.png"),
seller/src/views/goods/goods-seller/goodsOperationSec.vue
@@ -270,12 +270,13 @@
                                      </template>
                                    </div>
                                  </vuedraggable>
<!--                                  todo 3-->
                                  <Upload ref="uploadSku" action="-"
                                  <!--                                  todo 3-->
                                  <Upload ref="uploadSku" :action="uploadFileUrl"
                                          v-if="val.images < 1"
                                          :before-upload="handleBeforeUpload"
                                          :format="['jpg', 'jpeg', 'png', 'webp']"
                                          :max-size="2048"
                                          :headers="{ ...accessToken }"
                                          :on-error="() => { $Spin.hide(); }"
                                          :on-exceeded-size="handleMaxSize"
                                          :on-format-error="handleFormatError"
@@ -1116,6 +1117,16 @@
      }
    },
    // sku图片上传前钩子
  // async handleBeforeUpload(file) {
  //     const check =
  //       this.selectedSku.images !== undefined &&
  //       this.selectedSku.images.length > 5;
  //     if (check) {
  //       this.$Notice.warning({title: "图片数量不能大于五张"});
  //       return false;
  //     }
  //   },
    // sku图片上传前钩子
  async handleBeforeUpload(file) {
      const check =
        this.selectedSku.images !== undefined &&
@@ -1459,8 +1470,8 @@
        this.$Message.error("已存在相同规格项!");
        return;
      }
      if (this.zz(0, val) > 20) {
        this.$Message.error("规格值最多十个字符长度!");
      if (this.zz(0, val) > 30) {
        this.$Message.error("规格值最多十五个字符长度!");
        // val = val.toString().slice(0, 4);
        this.skuInfo[index].name = this.countCharacters(val, 10);
        this.$forceUpdate();// 调用该方法会触发组件的重新渲染
@@ -1515,8 +1526,8 @@
      if (val.value === '') {
        return;
      }
      if (this.zz(0, val.value) > 20) {
        this.$Message.error("规格值最多十个字符长度!");
      if (this.zz(0, val.value) > 30) {
        this.$Message.error("规格值最多十五个字符长度!");
        // val.value = val.value.toString().slice(0, 4);
        this.skuInfo[$index].spec_values[index].value = this.countCharacters(val.value, 10);
        this.$forceUpdate();// 调用该方法会触发组件的重新渲染
@@ -1731,7 +1742,7 @@
     * 渲染table所需要的column 和 data
     */
    renderTableData(skus) {
      console.log('-------------->销售类型',skus)
      console.log('-------------->销售类型', skus)
      this.skuTableColumn = [];
      let pushData = [];
      // 渲染头部
@@ -1999,10 +2010,10 @@
            }
            this.baseInfoForm.goodsId = this.goodsId;
            let submit = JSON.parse(JSON.stringify(this.baseInfoForm));
            console.log('----------------->提交',submit);
            console.log('----------------->提交', submit);
            if (
              submit.goodsGalleryFiles &&
                submit.goodsGalleryFiles.length <= 0
              submit.goodsGalleryFiles.length <= 0
            ) {
              this.submitLoading = false;
              this.$Message.error("请上传商品图片");
@@ -2177,16 +2188,16 @@
          this.$Message.error("刷新失败,请重试");
        }
      }).catch(reason => {
        console.log("获取模板失败",reason)
        console.log("获取模板失败", reason)
      });
    },
    removeVideo(){
    removeVideo() {
      this.baseInfoForm.showGoodsVideo = null;
      this.baseInfoForm.goodsVideo = null;
    },
    // todo 文件上传
    async upLoadImg(file) {
      console.log(file,this.count++);
      console.log(file, this.count++);
      if (this.listImages.length >= 5) {
        this.$Message.error("图片上传不能超过5个");
        return;
@@ -2305,12 +2316,10 @@
        this.baseInfoForm.goodsType = this.firstData.goodsType;
        if (this.categoryId!=null && this.categoryId!=='') {
        if (this.categoryId != null && this.categoryId !== '') {
          /** 获取该商城分类下 商品参数信息 */
          this.GET_GoodsParams();
          console.log('分类id------------------>',this.categoryId);
          console.log('分类id------------------>', this.categoryId);
          /** 查询分类绑定的规格信息 */
          this.Get_SkuInfoByCategory(this.categoryId);
          /** 查询品牌列表 */