xiangpei
2025-07-03 0c33f718ed1ab346aaf5fdb6d6af11e9498a75a0
Merge remote-tracking branch 'origin/dev' into dev
3个文件已修改
113 ■■■■■ 已修改文件
manager/src/views/member/list/index.vue 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
seller/src/views/goods/goods-seller/goods.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
seller/src/views/goods/goods-seller/goodsOperationSec.vue 62 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manager/src/views/member/list/index.vue
@@ -68,6 +68,11 @@
        <FormItem label="用户昵称" prop="name">
          <Input v-model="form.nickName" style="width: 200px" />
        </FormItem>
        <FormItem label="标签" prop="tags">
          <Select v-model="selectTagIds" multiple filterable :loading="selectLoading" style="width:200px;">
            <Option v-for="item in options" :key="item.id" :label="item.tagName" :value="item.id"></Option>
          </Select>
        </FormItem>
        <FormItem label="性别" prop="sex">
          <RadioGroup type="button" button-style="solid" v-model="form.sex">
            <Radio :label="1">
@@ -105,6 +110,7 @@
import * as API_Member from "@/api/member.js";
import ossManage from "@/views/sys/oss-manage/ossManage";
import * as RegExp from "@/libs/RegExp.js";
import { getTags } from "@/api/tag.js";
export default {
  name: "member",
@@ -119,7 +125,10 @@
      descFlag: false, //编辑查看框
      loading: true, // 表单加载状态
      addFlag: false, // modal显隐控制
      selectLoading: false,
      options: [],
      selectTagIds: [],
      selectTags: [],
      addMemberForm: {
        // 添加用户表单
        mobile: "",
@@ -391,8 +400,16 @@
     * 查询查看会员详情
     */
    getMemberInfo(id) {
      var that = this;
      API_Member.getMemberInfoData(id).then((res) => {
        if (res.result) {
          debugger
          that.selectTags = []
          that.selectTagIds = []
          res.result.tags.forEach(element => {
            that.selectTags.push(element.tagName)
            that.selectTagIds.push(element.tagId)
          });
          this.$set(this, "form", res.result);
        }
      });
@@ -474,6 +491,7 @@
    // 提交修改数据
    handleSubmitModal() {
      debugger
      const { nickName, sex, username, face, newPassword,id,regionId,region } = this.form;
      let time = new Date(this.form.birthday);
      let birthday = this.form.birthday=== undefined?'':
@@ -489,6 +507,7 @@
        id
      };
      submit.tags = this.selectTagIds
      if (newPassword) {
        submit.password = this.md5(newPassword);
      }
@@ -499,9 +518,35 @@
        }
      });
    },
    selectTag(e) {
      debugger
      if (this.selectTagIds.indexOf(e.value) != -1) {
        this.selectTagIds.splice(this.selectTagIds.indexOf(e.value), 1)
        this.selectTags.splice(this.selectTags.indexOf(e.label), 1)
      }
      else {
        this.selectTagIds.push(e.value)
        this.selectTags.push(e.label)
      }
      console.log(this.selectTags);
    },
    remoteMethod(query) {
      this.selectLoading = true;
      var params = {
        "tagTypeKey": "USER",
        "pageNumber": 1,
        "pageSize": 500
      }
      getTags(params).then(res => {
        this.options = res.data;
        this.selectLoading = false;
      });
    },
  },
  mounted() {
    this.getData();
    this.remoteMethod("")
  },
};
</script>
@@ -509,9 +554,11 @@
/deep/ .ivu-table-wrapper {
  width: 100%;
}
/deep/ .ivu-card {
  width: 100%;
}
.face {
  width: 60px;
  height: 60px;
seller/src/views/goods/goods-seller/goods.vue
@@ -333,6 +333,8 @@
              return h("Tag", { props: { color: "orange" } }, "零售");
            } else if (params.row.salesModel === "WHOLESALE") {
              return h("Tag", { props: { color: "magenta" } }, "批发");
            }  else if (params.row.salesModel === "PRESALE") {
              return h("Tag", { props: { color: "magenta" } }, "预售");
            } else {
              return h("Tag", { props: { color: "volcano" } }, "其他类型");
            }
seller/src/views/goods/goods-seller/goodsOperationSec.vue
@@ -23,6 +23,14 @@
            <FormItem label="商品价格" prop="price">
              <Input v-model="baseInfoForm.price" clearable placeholder="商品价格" style="width: 260px" type="text"/>
            </FormItem>
            <FormItem label="抽成比例" prop="commission">
<!--              <Input v-model="baseInfoForm.commission" max="100" min="0" clearable placeholder="抽成比例" style="width: 260px" type="number"/>-->
              <InputNumber v-model="baseInfoForm.commission" :formatter="value => `${value}%`"
                           :parser="value => value.replace('%', '')" :max="100" :min="0" clearable
                           placeholder="抽成比例" style="width: 260px" type="number"/>
            </FormItem>
            <FormItem label="商品卖点" prop="sellingPoint">
              <Input v-model="baseInfoForm.sellingPoint" :rows="4" style="width: 260px" type="textarea"/>
            </FormItem>
@@ -48,13 +56,22 @@
              <RadioGroup v-if="baseInfoForm.goodsType != 'VIRTUAL_GOODS'" v-model="baseInfoForm.salesModel"
                          button-style="solid" type="button" @on-change="renderTableData(skuTableData)">
                <Radio label="RETAIL" title="零售型">零售型</Radio>
                <Radio label="WHOLESALE" title="批发型">批发型</Radio>
<!--                <Radio label="WHOLESALE" title="批发型">批发型</Radio>-->
                <Radio label="PRESALE" title="预售">预售</Radio>
              </RadioGroup>
              <RadioGroup v-else v-model="baseInfoForm.salesModel" button-style="solid" type="button">
                <Radio label="RETAIL" title="零售型">
                  <span>虚拟型</span>
                </Radio>
              </RadioGroup>
            </FormItem>
            <FormItem v-if="baseInfoForm.salesModel == 'PRESALE'">
              <div>
                预售时间:
                <DatePicker type="daterange" v-model="baseInfoForm.preSaleTime"
                            format="yyyy-MM-dd" placement="bottom-end" placeholder="请选择预售时间" style="width: 200px"
                            @on-change="choosePreTime"></DatePicker>
              </div>
            </FormItem>
            <FormItem v-if="baseInfoForm.salesModel == 'WHOLESALE'" class="form-item-view-el" label="销售规则"
                      prop="wholesaleRule">
@@ -541,6 +558,7 @@
import COS from 'cos-js-sdk-v5';
import {getFileKey} from "@/utils/file.js";
import {getFilePreview, getSts} from "@/api/file";
import {formatDate} from "@/utils/filters";
export default {
@@ -677,6 +695,10 @@
        categoryName: [],
        goodsVideo: "",
        showGoodsVideo: "",
        // 预售时间
        preSaleTime:[],
        preSaleBeginDate:'',
        preSaleEndDate:'',
      },
      /** 表格头 */
      skuTableColumn: [],
@@ -758,6 +780,32 @@
    }
  },
  methods: {
    // 格式化显示值
    formatter(date) {
      return this.formatDate(date, 'yyyy-MM-dd');
    },
    // 日期格式化工具
    formatDate(date, format) {
      const year = date.getFullYear();
      const month = (date.getMonth() + 1).toString().padStart(2, '0');
      const day = date.getDate().toString().padStart(2, '0');
      return format
        .replace('yyyy', year)
        .replace('MM', month)
        .replace('dd', day);
    },
    choosePreTime(e){
      if (this.baseInfoForm.preSaleTime){
        const[begin,end] = this.baseInfoForm.preSaleTime;
        this.baseInfoForm.preSaleBeginDate = this.formatDate(begin,'yyyy-MM-dd');
        this.baseInfoForm.preSaleEndDate = this.formatDate(end,'yyyy-MM-dd');
        console.log('------------------>选择时间',this.baseInfoForm.preSaleBeginDate,this.baseInfoForm.preSaleEndDate)
      }
      console.log('时间选择------------------》',e)
    },
    // 选择图片modal
    handleCLickImg(val, index) {
      console.log('测试输入的值----------------》', val)
@@ -1185,6 +1233,7 @@
      response.result.recommend
        ? (response.result.recommend = 1)
        : (response.result.recommend = 0);
      response.result.preSaleTime = [response.result.preSaleBeginDate, response.result.preSaleEndDate];
      this.baseInfoForm = {...this.baseInfoForm, ...response.result};
      this.baseInfoForm.release = 1; //即使是被放入仓库,修改的时候也会显示会立即发布
      this.categoryId = response.result.categoryPath.split(",")[2];
@@ -1679,6 +1728,7 @@
     * 渲染table所需要的column 和 data
     */
    renderTableData(skus) {
      console.log('-------------->销售类型',skus)
      this.skuTableColumn = [];
      let pushData = [];
      // 渲染头部
@@ -1703,7 +1753,15 @@
          }
        );
      }
      // 预售模式
      if (this.baseInfoForm.salesModel !== "PRESALE") {
        pushData.push(
          {
            title: "预售时间",
            slot: "price",
          }
        );
      }
      if (this.baseInfoForm.salesModel === "WHOLESALE" && this.wholesaleData) {
        this.wholesaleData.forEach((item, index) => {
          pushData.push({