jiangping
2025-02-19 c977f0e2fd86ca3e9e3ad3961f702206c41d2767
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
<template>
  <GlobalWindow :title="param.id ? '编辑套餐' : '新建套餐'" :visible.sync="isShowModal" :confirm-working="isLoading"
    width="1000px" @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-option label="期限卡" :value="0"></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>
      </el-form-item>
      <el-form-item label="销售价">
        <el-input class="w200" v-model="param.name" placeholder="请输入价格" v-trim />
      </el-form-item>
      <el-form-item label="划线价">
        <el-input class="w200" v-model="param.name" placeholder="请输入展示的划线价" v-trim />
      </el-form-item>
      <el-form-item label="销售渠道">
        <el-checkbox v-model="param.ada">小程序端</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"
            @uploadBegin="isUploading = true" />
          <div class="img_place">
            <div>上传图片不允许涉及政治敏感与色情;</div>
            <div>图片格式必须为:png,PNG,jpeg,jpg,JPG;不可大于2M;建议使用</div>
            <div>ng格式图片,以保持最佳效果;建议图片尺寸为144px*144px</div>
          </div>
        </div>
      </el-form-item>
      <el-form-item label="套餐简介">
        <el-input class="w400" v-model="param.name" placeholder="请输入套餐简介" v-trim />
      </el-form-item>
      <el-form-item label="套餐描述">
        <RichEditor :content="{ content: param.content }" @edit="param.content = $event"></RichEditor>
      </el-form-item>
      <div class="form_title">
        <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>
      <div class="df_ac">
        <el-form-item label="使用时间" class="mr16">
          <el-select v-model="param.aaadd" 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-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">
          <div class="df_ac">
            <el-date-picker class="w200" v-model="param.dasdas" value-format="yyyy-MM-dd" type="date" />
            <span class="ml10 mr10">开始生效,有效期</span>
            <el-input style="width: 130px;" v-model="param.name" 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>
      <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>
      <el-form-item label="总限额">
        <el-input class="w400" v-model="param.name" 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 />
        <div class="placeholder9">请输入日发售数量,当日销量大于该数量后,不再支持销售;为空表示不限制</div>
      </el-form-item>
 
 
 
    </el-form>
    <!--  -->
  </GlobalWindow>
</template>
 
<script>
import GlobalWindow from '@/components/common/GlobalWindow'
// import { fetchList as getStoreList } from '@/api/ywWarehouse'
// import { ywOutinboundCreate } from '@/api/store/index'
import UploadAvatarImage from '@/components/common/UploadAvatarImage'
import { StoreTypeOps, rules } from './config'
import { Message } from 'element-ui'
import RichEditor from '@/components/common/RichEditor'
// import dayjs from 'dayjs'
export default {
  name: 'OperaCategoryWindow',
  components: { GlobalWindow, UploadAvatarImage, RichEditor },
  data() {
    return {
      // 表单数据
      param: { checkList: [], content: '' },
      isShowModal: false,
      isShowSel: false,
      isLoading: false,
      isUploading: false,
      // 验证规则
      rules,
      storeList: [],
      list: [],
      StoreTypeOps: [],
 
      dataList: [],
    }
  },
  created() {
    // this.initData()
 
  },
  methods: {
    confirm() {
      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('请输入正确的入库数量')
          this.isLoading = true
          ywOutinboundCreate({
            ...param,
            recordList: list
          }).then(res => {
            this.isLoading = false
            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 || []
      })
    },
    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)
        }
      })
    },
    uploadAvatarSuccess(file) {
      this.$set(this.param, 'fileUrl', file.imgurl)
      this.$set(this.param, 'fileFullUrl', file.imgurlfull)
    },
    handleOpenMaterial() {
      this.isShowSel = true
      this.$nextTick(() => {
        this.$refs.AssetSelRef.isShowModal = true
        this.$refs.AssetSelRef.getList()
      })
    },
    close() {
      this.isShowModal = false
      this.$emit('close')
    },
    getDetail(id) {
      getInfoById(id).then(res => {
        this.param = res
      })
    },
  }
}
</script>
<style lang="scss" scoped>
@import "@/assets/style/variables.scss";
 
.form_title {
  display: flex;
  align-items: center;
  color: $primary-color;
  margin-bottom: 16px;
 
  .placeholder9 {
    color: #999999;
    font-size: 12px;
    margin-left: 12px;
  }
}
.img_place{
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  margin-left: 12px;
  color: #999999;
  font-size: 12px;
  padding: 8px 0;
}
</style>