From b565a275fe240e2bd8a939c3b4beed98d03767bc Mon Sep 17 00:00:00 2001
From: liukangdong <898885815@qq.com>
Date: 星期四, 20 二月 2025 18:17:15 +0800
Subject: [PATCH] ll

---
 admin/src/views/combo/components/Edit.vue |  187 +++++++++++++++++++++++++++-------------------
 1 files changed, 111 insertions(+), 76 deletions(-)

diff --git a/admin/src/views/combo/components/Edit.vue b/admin/src/views/combo/components/Edit.vue
index 227d177..51b16fd 100644
--- a/admin/src/views/combo/components/Edit.vue
+++ b/admin/src/views/combo/components/Edit.vue
@@ -1,35 +1,44 @@
 <template>
   <GlobalWindow :title="param.id ? '缂栬緫濂楅' : '鏂板缓濂楅'" :visible.sync="isShowModal" :confirm-working="isLoading"
-    width="1000px" @close="close" @confirm="confirm">
+    width="900px" @close="close" @confirm="confirm">
     <el-form :model="param" label-width="100px" ref="form" :rules="rules">
       <div class="form_title">鍩烘湰淇℃伅</div>
       <el-form-item label="濂楅鍚嶇О" prop="name">
         <el-input class="w200" v-model="param.name" placeholder="璇疯緭鍏ュ椁愬悕绉�" v-trim />
       </el-form-item>
-      <el-form-item label="绫诲瀷">
-        <el-select class="w200" :disabled="true" v-model="param.warehouseId">
+      <el-form-item label="绫诲瀷" prop="type">
+        <el-select class="w200" :disabled="true" v-model="param.type">
           <el-option label="鏈熼檺鍗�" :value="0"></el-option>
+          <el-option label="娆″崱" :value="1"></el-option>
         </el-select>
       </el-form-item>
       <el-form-item label="姣忔棩楠戣闄愬埗">
-        <div>
-          <el-radio v-model="param.aa" label="1">涓嶉檺鍒�</el-radio>
-          <el-radio v-model="param.aa" label="2">闄愬埗鏃堕暱</el-radio>
+        <div class="df_ac">
+          <div class="mr10">
+            <el-radio @change="changeType" v-model="param.limitType" :label="0">涓嶉檺鍒�</el-radio>
+            <el-radio @change="changeType" v-model="param.limitType" :label="1">闄愬埗鏃堕暱</el-radio>
+          </div>
+          <el-input v-if="param.limitType == 1" class="w200" v-model="param.limitTime" v-trim />
+          <span v-if="param.limitType == 1" class="ml10">鍒嗛挓</span>
         </div>
       </el-form-item>
-      <el-form-item label="閿�鍞环">
-        <el-input class="w200" v-model="param.name" placeholder="璇疯緭鍏ヤ环鏍�" v-trim />
+      <el-form-item label="閿�鍞环" prop="price">
+        <el-input class="w200"
+          oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')"
+          v-model="param.price" placeholder="璇疯緭鍏ヤ环鏍�" v-trim />
       </el-form-item>
       <el-form-item label="鍒掔嚎浠�">
-        <el-input class="w200" v-model="param.name" placeholder="璇疯緭鍏ュ睍绀虹殑鍒掔嚎浠�" v-trim />
+        <el-input class="w200" v-model="param.linePrice"
+          oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')"
+          placeholder="璇疯緭鍏ュ睍绀虹殑鍒掔嚎浠�" v-trim />
       </el-form-item>
-      <el-form-item label="閿�鍞笭閬�">
-        <el-checkbox v-model="param.ada">灏忕▼搴忕</el-checkbox>
+      <el-form-item label="閿�鍞笭閬�" prop="channel">
+        <el-checkbox v-model="param.channel" disabled :true-label="0" :false-label="1">灏忕▼搴忕</el-checkbox>
       </el-form-item>
       <el-form-item label="濂楅鍥剧墖">
         <div class="df_ac">
           <UploadAvatarImage :file="{ 'imgurlfull': param.fileFullUrl, 'imgurl': param.fileUrl }"
-            :uploadData="{ folder: 'ywPatrol/' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false"
+            :uploadData="{ folder: 'DISCOUNT/' }" @uploadSuccess="uploadAvatarSuccess" @uploadEnd="isUploading = false"
             @uploadBegin="isUploading = true" />
           <div class="img_place">
             <div>涓婁紶鍥剧墖涓嶅厑璁告秹鍙婃斂娌绘晱鎰熶笌鑹叉儏;</div>
@@ -39,7 +48,7 @@
         </div>
       </el-form-item>
       <el-form-item label="濂楅绠�浠�">
-        <el-input class="w400" v-model="param.name" placeholder="璇疯緭鍏ュ椁愮畝浠�" v-trim />
+        <el-input class="w400" v-model="param.descs" placeholder="璇疯緭鍏ュ椁愮畝浠�" v-trim />
       </el-form-item>
       <el-form-item label="濂楅鎻忚堪">
         <RichEditor :content="{ content: param.content }" @edit="param.content = $event"></RichEditor>
@@ -48,50 +57,56 @@
         <div>閫傜敤瑙勫垯</div>
         <div class="placeholder9">閿�鍞椂闂淬�佷娇鐢ㄦ椂闂寸瓑璁剧疆</div>
       </div>
-      <el-form-item label="閿�鍞椂娈�">
-        <el-date-picker class="w400" v-model="param.value1" value-format="yyyy-MM-dd" type="daterange" range-separator=" ~ " />
+      <el-form-item label="閿�鍞椂娈�" prop="saleDate">
+        <el-date-picker class="w400" v-model="param.saleDate" value-format="yyyy-MM-dd" type="daterange"
+          range-separator=" ~ " />
       </el-form-item>
       <div class="df_ac">
-        <el-form-item label="浣跨敤鏃堕棿" class="mr16">
-          <el-select v-model="param.aaadd" style="width: 140px;">
+        <el-form-item prop="useType" label="浣跨敤鏃堕棿" class="mr16">
+          <el-select @change="changeUseDate" v-model="param.useType" style="width: 140px;">
             <el-option label="鍥哄畾鏃ユ湡" :value="0"></el-option>
             <el-option label="璐拱鍚庣敓鏁�" :value="1"></el-option>
-            <el-option label="鎸囧畾鏃ユ湡鐢熸晥" :value="1"></el-option>
+            <el-option label="鎸囧畾鏃ユ湡鐢熸晥" :value="2"></el-option>
           </el-select>
         </el-form-item>
-        <!-- <el-form-item label-width="80px" label="鍥哄畾鏃ユ湡">
-          <el-date-picker v-model="param.value1" value-format="yyyy-MM-dd" type="daterange" range-separator=" ~ " />
-        </el-form-item> -->
-        <!-- <el-form-item label-width="60px" label="鏈夋晥鏈�">
-          <el-input style="width: 130px;" v-model="param.name" placeholder="璇疯緭鍏ユ湁鏁堝ぉ鏁�" v-trim />
-        </el-form-item> -->
-        <el-form-item label-width="0px">
+        <el-form-item v-if="param.useType == 0" label-width="80px" label="鍥哄畾鏃ユ湡">
+          <el-date-picker v-model="param.useDate" value-format="yyyy-MM-dd" type="daterange" range-separator=" ~ " />
+        </el-form-item>
+        <el-form-item v-if="param.useType == 1" label-width="60px" label="鏈夋晥鏈�">
+          <el-input style="width: 130px;" oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 8)"
+            v-model="param.useDays" placeholder="璇疯緭鍏ユ湁鏁堝ぉ鏁�" v-trim />
+          <span class="ml10">澶�</span>
+        </el-form-item>
+        <el-form-item v-if="param.useType == 2" label-width="0px">
           <div class="df_ac">
-            <el-date-picker class="w200" v-model="param.dasdas" value-format="yyyy-MM-dd" type="date" />
+            <el-date-picker class="w200" v-model="param.useStartDate" value-format="yyyy-MM-dd" type="date" />
             <span class="ml10 mr10">寮�濮嬬敓鏁堬紝鏈夋晥鏈�</span>
-            <el-input style="width: 130px;" v-model="param.name" placeholder="璇疯緭鍏ユ湁鏁堝ぉ鏁�" v-trim />
+            <el-input style="width: 130px;" v-model="param.useDays"
+              oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 8)" placeholder="璇疯緭鍏ユ湁鏁堝ぉ鏁�" v-trim />
             <span class="ml10">澶�</span>
           </div>
         </el-form-item>
       </div>
-      <el-form-item label="閫傜敤鑼冨洿">
-        <el-checkbox-group v-model="param.checkList">
-          <el-checkbox label="宸ヤ綔鏃�"></el-checkbox>
-          <el-checkbox label="鑺傚亣鏃�"></el-checkbox>
-        </el-checkbox-group>
+      <el-form-item :prop="param.useWorkday == 1 ? 'useWorkday' : 'useHoliday'" label="閫傜敤鑼冨洿">
+        <div class="df_ac">
+          <el-checkbox v-model="param.useWorkday" :true-label="1" :false-label="0" label="宸ヤ綔鏃�"></el-checkbox>
+          <el-checkbox v-model="param.useHoliday" :true-label="1" :false-label="0" label="鑺傚亣鏃�"></el-checkbox>
+        </div>
       </el-form-item>
-      <el-form-item label="閫傜敤椤圭洰">
-        <el-checkbox-group v-model="param.checkList">
-          <el-checkbox label="鑷杞�"></el-checkbox>
-          <el-checkbox label="鐢靛姩杞�"></el-checkbox>
-        </el-checkbox-group>
+      <el-form-item :prop="param.isbike == 1 ? 'isbike' : 'iselecbike'" label="閫傜敤椤圭洰">
+        <div class="df_ac">
+          <el-checkbox v-model="param.isbike" :true-label="1" :false-label="0" label="鑷杞�"></el-checkbox>
+          <el-checkbox v-model="param.iselecbike" :true-label="1" :false-label="0" label="鐢靛姩杞�"></el-checkbox>
+        </div>
       </el-form-item>
       <el-form-item label="鎬婚檺棰�">
-        <el-input class="w400" v-model="param.name" placeholder="璇疯緭鍏ユ�诲彂鍞暟閲�" v-trim />
+        <el-input class="w400" v-model="param.saleLimit" oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 12)"
+          placeholder="璇疯緭鍏ユ�诲彂鍞暟閲�" v-trim />
         <div class="placeholder9">璇疯緭鍏ユ�诲彂鍞暟閲忥紝閿�閲忓ぇ浜庤鏁伴噺鍚庯紝涓嶅啀鏀寔閿�鍞紱涓虹┖琛ㄧず涓嶉檺鍒�</div>
       </el-form-item>
       <el-form-item label="鏃ラ檺棰�">
-        <el-input class="w400" v-model="param.name" placeholder="璇疯緭鍏ュ崟鏃ュ彂鍞暟閲�" v-trim />
+        <el-input class="w400" v-model="param.saleDayLimit"
+          oninput="value=value.replace(/^(0+)|[^\d]+/g, '').slice(0, 12)" placeholder="璇疯緭鍏ュ崟鏃ュ彂鍞暟閲�" v-trim />
         <div class="placeholder9">璇疯緭鍏ユ棩鍙戝敭鏁伴噺锛屽綋鏃ラ攢閲忓ぇ浜庤鏁伴噺鍚庯紝涓嶅啀鏀寔閿�鍞紱涓虹┖琛ㄧず涓嶉檺鍒�</div>
       </el-form-item>
 
@@ -104,10 +119,9 @@
 
 <script>
 import GlobalWindow from '@/components/common/GlobalWindow'
-// import { fetchList as getStoreList } from '@/api/ywWarehouse'
-// import { ywOutinboundCreate } from '@/api/store/index'
+import { comboAddPost, comboEditPost, comboDetailPost } from '@/api/business/combo.js'
 import UploadAvatarImage from '@/components/common/UploadAvatarImage'
-import { StoreTypeOps, rules } from './config'
+import { rulesCombo } from './config'
 import { Message } from 'element-ui'
 import RichEditor from '@/components/common/RichEditor'
 // import dayjs from 'dayjs'
@@ -117,13 +131,25 @@
   data() {
     return {
       // 琛ㄥ崟鏁版嵁
-      param: { checkList: [], content: '' },
+      param: {
+        type: 0,
+        limitType: 0,
+        channel: 0,
+        useType: 0,
+        useWorkday: 1,
+        useHoliday: 0,
+        iselecbike: 0,
+        isbike: 1,
+
+        checkList: [],
+        content: ''
+      },
       isShowModal: false,
       isShowSel: false,
       isLoading: false,
       isUploading: false,
       // 楠岃瘉瑙勫垯
-      rules,
+      rules: rulesCombo,
       storeList: [],
       list: [],
       StoreTypeOps: [],
@@ -137,47 +163,48 @@
   },
   methods: {
     confirm() {
+      const { param } = this
       this.$refs['form'].validate((valid) => {
         if (valid) {
-          const { param, list } = this
-          if (list.length == 0) return Message.warning('璇峰厛閫夋嫨鐗╂枡淇℃伅')
-          let count = 0 // 鍏ュ簱鏁伴噺蹇呭~
-          list.forEach(item => {
-            if (!item.stock) count++
-          })
-          if (count > 0) return Message.warning('璇疯緭鍏ユ纭殑鍏ュ簱鏁伴噺')
+          if (param.useDate && param.useDate.length > 0) {
+            param.useStartDate = param.useDate[0]
+            param.useEndDate = param.useDate[1]
+          } else {
+            param.useStartDate = param.useType == 2 ? param.useStartDate : null
+            param.useEndDate = null
+          }
+          if (param.saleDate && param.saleDate.length > 0) {
+            param.startDate = param.saleDate[0]
+            param.endDate = param.saleDate[1]
+          } else {
+            param.startDate = null
+            param.endDate = null
+          }
           this.isLoading = true
-          ywOutinboundCreate({
-            ...param,
-            recordList: list
+          let fn = param.id ? comboEditPost : comboAddPost
+          fn({
+            ...param
           }).then(res => {
             this.isLoading = false
-            Message.success('鎻愪氦鎴愬姛')
-            this.$emit('success')
-            this.close()
+            if (res) {
+              Message.success('鎻愪氦鎴愬姛')
+              this.$emit('success')
+              this.close()
+            }
           }, () => {
             this.isLoading = false
           })
         }
       })
     },
-    initData() {
-      this.$set(this.param, 'doneDate', dayjs().format('YYYY-MM-DD'))
-      getStoreList({ capacity: 9999, page: 1, model: { status: 0 } }).then(res => {
-        this.storeList = res.records || []
-      })
+    changeType() {
+      this.$set(this.param, 'limitTime', null)
     },
-    changeSel(val) {
-      const list = val
-      list.forEach(item => {
-        const index = this.list.findIndex(i => i.id == item.id)
-        if (index == -1) {
-          item.materialId = item.id
-          item.multifile = null
-          item.createDate = null
-          this.list.push(item)
-        }
-      })
+    changeUseDate() {
+      this.$set(this.param, 'useDate', null)
+      this.$set(this.param, 'useDays', null)
+      this.$set(this.param, 'useStartDate', null)
+      this.$set(this.param, 'useEndDate', null)
     },
     uploadAvatarSuccess(file) {
       this.$set(this.param, 'fileUrl', file.imgurl)
@@ -191,12 +218,19 @@
       })
     },
     close() {
+      console.log('------');
+      
       this.isShowModal = false
       this.$emit('close')
     },
-    getDetail(id) {
-      getInfoById(id).then(res => {
+    getDetail(id, type) {
+      comboDetailPost(id).then(res => {
         this.param = res
+        this.$set(this.param, 'saleDate', [res.startDate, res.endDate])
+        if (res.useStartDate && res.useEndDate) {
+          this.$set(this.param, 'useDate', [res.useStartDate, res.useEndDate])
+        }
+        this.$set(this.param, id, type == 'copy' ? null : this.param.id)
       })
     },
   }
@@ -217,7 +251,8 @@
     margin-left: 12px;
   }
 }
-.img_place{
+
+.img_place {
   display: flex;
   flex-direction: column;
   justify-content: space-between;

--
Gitblit v1.9.3