|
@@ -30,6 +30,16 @@
|
|
|
/>
|
|
/>
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
+ <el-form-item label="是否药品" prop="isDrug">
|
|
|
|
|
+ <el-select v-model="queryParams.isDrug" placeholder="请选择" clearable size="small">
|
|
|
|
|
+ <el-option
|
|
|
|
|
+ v-for="item in isDrugOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.label"
|
|
|
|
|
+ :value="item.value"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-select>
|
|
|
|
|
+ </el-form-item>
|
|
|
<el-form-item>
|
|
<el-form-item>
|
|
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
|
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
|
@@ -69,6 +79,17 @@
|
|
|
v-hasPermi="['his:integralGoods:remove']"
|
|
v-hasPermi="['his:integralGoods:remove']"
|
|
|
>删除</el-button>
|
|
>删除</el-button>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
|
|
+ <el-col :span="1.5">
|
|
|
|
|
+ <el-button
|
|
|
|
|
+ type="primary"
|
|
|
|
|
+ plain
|
|
|
|
|
+ icon="el-icon-time"
|
|
|
|
|
+ size="mini"
|
|
|
|
|
+ :disabled="multiple"
|
|
|
|
|
+ @click="handleBatchValidPeriod"
|
|
|
|
|
+ v-hasPermi="['his:integralGoods:edit']"
|
|
|
|
|
+ >批量修改有效期</el-button>
|
|
|
|
|
+ </el-col>
|
|
|
<el-col :span="1.5">
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
<el-button
|
|
|
type="warning"
|
|
type="warning"
|
|
@@ -116,6 +137,13 @@
|
|
|
<dict-tag :options="goodsTypeOptions" :value="scope.row.goodsType"/>
|
|
<dict-tag :options="goodsTypeOptions" :value="scope.row.goodsType"/>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
|
|
+ <el-table-column label="是否药品" align="center" prop="isDrug" width="90">
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <el-tag :type="scope.row.isDrug === 1 ? 'danger' : 'info'" size="mini">
|
|
|
|
|
+ {{ scope.row.isDrug === 1 ? '是' : '否' }}
|
|
|
|
|
+ </el-tag>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="状态" align="center" prop="status">
|
|
<el-table-column label="状态" align="center" prop="status">
|
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
|
<dict-tag :options="statusOptions" :value="scope.row.status"/>
|
|
<dict-tag :options="statusOptions" :value="scope.row.status"/>
|
|
@@ -125,6 +153,21 @@
|
|
|
<el-table-column label="需支付金额" align="center" prop="cash" />
|
|
<el-table-column label="需支付金额" align="center" prop="cash" />
|
|
|
<el-table-column label="排序" align="center" prop="sort" />
|
|
<el-table-column label="排序" align="center" prop="sort" />
|
|
|
<el-table-column label="库存" align="center" prop="stock" />
|
|
<el-table-column label="库存" align="center" prop="stock" />
|
|
|
|
|
+ <el-table-column label="限购" align="center" prop="limitNum">
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <span v-if="scope.row.limitNum > 0">{{ scope.row.limitNum }}件/人</span>
|
|
|
|
|
+ <span v-else>不限购</span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column label="有效期" align="center" prop="isLongTerm" width="180">
|
|
|
|
|
+ <template slot-scope="scope">
|
|
|
|
|
+ <el-tag v-if="scope.row.isLongTerm === 0" type="success" size="mini">长期有效</el-tag>
|
|
|
|
|
+ <div v-else>
|
|
|
|
|
+ <div style="font-size: 12px;">开始: {{ scope.row.validStartTime }}</div>
|
|
|
|
|
+ <div style="font-size: 12px;">结束: {{ scope.row.validEndTime }}</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="创建时间" align="center" prop="createTime" width="180"/>
|
|
<el-table-column label="创建时间" align="center" prop="createTime" width="180"/>
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150">
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150">
|
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
@@ -195,6 +238,15 @@
|
|
|
<el-form-item label="商品编号" prop="barCode">
|
|
<el-form-item label="商品编号" prop="barCode">
|
|
|
<el-input v-model="form.barCode" placeholder="请输入商品编号" style="width: 200px;"/>
|
|
<el-input v-model="form.barCode" placeholder="请输入商品编号" style="width: 200px;"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
+ <el-form-item label="是否药品" prop="isDrug">
|
|
|
|
|
+ <el-radio-group v-model="form.isDrug">
|
|
|
|
|
+ <el-radio
|
|
|
|
|
+ v-for="item in isDrugOptions"
|
|
|
|
|
+ :key="item.value"
|
|
|
|
|
+ :label="item.value"
|
|
|
|
|
+ >{{ item.label }}</el-radio>
|
|
|
|
|
+ </el-radio-group>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
|
|
|
<el-form-item label="排序" prop="sort">
|
|
<el-form-item label="排序" prop="sort">
|
|
|
<el-input-number v-model="form.sort" :min="0" label="排序"></el-input-number>
|
|
<el-input-number v-model="form.sort" :min="0" label="排序"></el-input-number>
|
|
@@ -206,6 +258,10 @@
|
|
|
<el-form-item label="库存" prop="stock">
|
|
<el-form-item label="库存" prop="stock">
|
|
|
<el-input-number v-model="form.stock" :min="0" label="库存"></el-input-number>
|
|
<el-input-number v-model="form.stock" :min="0" label="库存"></el-input-number>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
+ <el-form-item label="限购数量" prop="limitNum">
|
|
|
|
|
+ <el-input-number v-model="form.limitNum" :min="0" :step="1" :precision="0" label="限购数量"></el-input-number>
|
|
|
|
|
+ <span style="margin-left: 10px; color: #909399; font-size: 12px;">0表示不限购,大于0表示每用户限购件数</span>
|
|
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="状态">
|
|
<el-form-item label="状态">
|
|
|
<el-radio-group v-model="form.status">
|
|
<el-radio-group v-model="form.status">
|
|
|
<el-radio
|
|
<el-radio
|
|
@@ -256,19 +312,54 @@
|
|
|
</div>
|
|
</div>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
|
|
|
|
-
|
|
|
|
|
|
|
+ <!-- 批量修改有效期对话框 -->
|
|
|
|
|
+ <el-dialog title="批量修改有效期" :visible.sync="validPeriodOpen" width="500px" append-to-body>
|
|
|
|
|
+ <el-form ref="validPeriodForm" :model="validPeriodForm" :rules="validPeriodRules" label-width="120px">
|
|
|
|
|
+ <el-form-item label="已选商品" prop="goodsIds">
|
|
|
|
|
+ <span>共 {{ validPeriodForm.goodsIds.length }} 件商品</span>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="是否长期有效" prop="isLongTerm">
|
|
|
|
|
+ <el-radio-group v-model="validPeriodForm.isLongTerm" @change="handleLongTermChange">
|
|
|
|
|
+ <el-radio :label="0">是</el-radio>
|
|
|
|
|
+ <el-radio :label="1">否</el-radio>
|
|
|
|
|
+ </el-radio-group>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item v-if="validPeriodForm.isLongTerm === 1" label="兑换开始时间" prop="validStartTime">
|
|
|
|
|
+ <el-date-picker
|
|
|
|
|
+ v-model="validPeriodForm.validStartTime"
|
|
|
|
|
+ type="datetime"
|
|
|
|
|
+ placeholder="请选择兑换开始时间"
|
|
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
|
|
+ style="width: 100%;"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item v-if="validPeriodForm.isLongTerm === 1" label="兑换结束时间" prop="validEndTime">
|
|
|
|
|
+ <el-date-picker
|
|
|
|
|
+ v-model="validPeriodForm.validEndTime"
|
|
|
|
|
+ type="datetime"
|
|
|
|
|
+ placeholder="请选择兑换结束时间"
|
|
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
|
|
+ style="width: 100%;"
|
|
|
|
|
+ />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
|
|
+ <el-button type="primary" @click="submitValidPeriodForm">确 定</el-button>
|
|
|
|
|
+ <el-button @click="validPeriodOpen = false">取 消</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
-import { importTemplate,listIntegralGoods, getIntegralGoods, delIntegralGoods, addIntegralGoods, updateIntegralGoods, exportIntegralGoods } from "@/api/his/integralGoods";
|
|
|
|
|
|
|
+import { importTemplate,listIntegralGoods, getIntegralGoods, delIntegralGoods, addIntegralGoods, updateIntegralGoods, exportIntegralGoods, batchUpdateValidPeriod } from "@/api/hisStore/integralGoods";
|
|
|
import Material from '@/components/Material';
|
|
import Material from '@/components/Material';
|
|
|
import Editor from '@/components/Editor/wang';
|
|
import Editor from '@/components/Editor/wang';
|
|
|
import { getToken } from "@/utils/auth";
|
|
import { getToken } from "@/utils/auth";
|
|
|
-import integralGoodsDetails from '../../components/his/integralGoodsDetails';
|
|
|
|
|
|
|
+import integralGoodsDetails from '../components/integralGoodsDetails';
|
|
|
export default {
|
|
export default {
|
|
|
name: "IntegralGoods",
|
|
name: "IntegralGoods",
|
|
|
- components: {Material,Editor,integralGoodsDetails},
|
|
|
|
|
|
|
+ components: { Material,Editor,integralGoodsDetails},
|
|
|
watch: {
|
|
watch: {
|
|
|
imageArr: function(val) {
|
|
imageArr: function(val) {
|
|
|
this.form.imgUrl = val.join(',')
|
|
this.form.imgUrl = val.join(',')
|
|
@@ -322,6 +413,11 @@ export default {
|
|
|
goodsTypeOptions: [],
|
|
goodsTypeOptions: [],
|
|
|
// 状态字典
|
|
// 状态字典
|
|
|
statusOptions: [],
|
|
statusOptions: [],
|
|
|
|
|
+ // 是否药品选项
|
|
|
|
|
+ isDrugOptions: [
|
|
|
|
|
+ { value: 0, label: "否" },
|
|
|
|
|
+ { value: 1, label: "是" }
|
|
|
|
|
+ ],
|
|
|
// 查询参数
|
|
// 查询参数
|
|
|
queryParams: {
|
|
queryParams: {
|
|
|
pageNum: 1,
|
|
pageNum: 1,
|
|
@@ -329,11 +425,33 @@ export default {
|
|
|
goodsName: null,
|
|
goodsName: null,
|
|
|
goodsType: null,
|
|
goodsType: null,
|
|
|
status: null,
|
|
status: null,
|
|
|
|
|
+ isDrug: null,
|
|
|
integral: null,
|
|
integral: null,
|
|
|
createTime: null
|
|
createTime: null
|
|
|
},
|
|
},
|
|
|
// 表单参数
|
|
// 表单参数
|
|
|
form: {},
|
|
form: {},
|
|
|
|
|
+ // 批量修改有效期弹窗
|
|
|
|
|
+ validPeriodOpen: false,
|
|
|
|
|
+ // 批量修改有效期表单
|
|
|
|
|
+ validPeriodForm: {
|
|
|
|
|
+ goodsIds: [],
|
|
|
|
|
+ isLongTerm: 0,
|
|
|
|
|
+ validStartTime: null,
|
|
|
|
|
+ validEndTime: null
|
|
|
|
|
+ },
|
|
|
|
|
+ // 批量修改有效期校验
|
|
|
|
|
+ validPeriodRules: {
|
|
|
|
|
+ isLongTerm: [
|
|
|
|
|
+ { required: true, message: "请选择是否长期有效", trigger: "change", type: "number" }
|
|
|
|
|
+ ],
|
|
|
|
|
+ validStartTime: [
|
|
|
|
|
+ { required: true, message: "请选择兑换开始时间", trigger: "change" }
|
|
|
|
|
+ ],
|
|
|
|
|
+ validEndTime: [
|
|
|
|
|
+ { required: true, message: "请选择兑换结束时间", trigger: "change" }
|
|
|
|
|
+ ]
|
|
|
|
|
+ },
|
|
|
// 表单校验
|
|
// 表单校验
|
|
|
rules: {
|
|
rules: {
|
|
|
imgUrl: [
|
|
imgUrl: [
|
|
@@ -342,6 +460,9 @@ export default {
|
|
|
goodsName: [
|
|
goodsName: [
|
|
|
{ required: true, message: "商品名称不能为空", trigger: "blur" }
|
|
{ required: true, message: "商品名称不能为空", trigger: "blur" }
|
|
|
],
|
|
],
|
|
|
|
|
+ isDrug: [
|
|
|
|
|
+ { required: true, message: "请选择是否药品", trigger: "change", type: "number" }
|
|
|
|
|
+ ],
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
},
|
|
},
|
|
@@ -419,9 +540,13 @@ export default {
|
|
|
cash: null,
|
|
cash: null,
|
|
|
sort: null,
|
|
sort: null,
|
|
|
stock: null,
|
|
stock: null,
|
|
|
|
|
+ limitNum: 0,
|
|
|
descs: null,
|
|
descs: null,
|
|
|
|
|
+ isDrug: 0,
|
|
|
createTime: null
|
|
createTime: null
|
|
|
};
|
|
};
|
|
|
|
|
+ this.imageArr = []
|
|
|
|
|
+ this.photoArr = []
|
|
|
this.resetForm("form");
|
|
this.resetForm("form");
|
|
|
},
|
|
},
|
|
|
/** 搜索按钮操作 */
|
|
/** 搜索按钮操作 */
|
|
@@ -465,6 +590,7 @@ export default {
|
|
|
if(this.form.images!=null){
|
|
if(this.form.images!=null){
|
|
|
this.photoArr=this.form.images.split(",");
|
|
this.photoArr=this.form.images.split(",");
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
//修改按钮
|
|
//修改按钮
|
|
|
setTimeout(() => {
|
|
setTimeout(() => {
|
|
|
if(this.form.descs==null){
|
|
if(this.form.descs==null){
|
|
@@ -524,6 +650,58 @@ export default {
|
|
|
this.download(response.msg);
|
|
this.download(response.msg);
|
|
|
this.exportLoading = false;
|
|
this.exportLoading = false;
|
|
|
}).catch(() => {});
|
|
}).catch(() => {});
|
|
|
|
|
+ },
|
|
|
|
|
+ /** 批量修改有效期按钮操作 */
|
|
|
|
|
+ handleBatchValidPeriod() {
|
|
|
|
|
+ if (this.ids.length === 0) {
|
|
|
|
|
+ this.msgError("请至少选择一条数据");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ this.validPeriodForm = {
|
|
|
|
|
+ goodsIds: this.ids,
|
|
|
|
|
+ isLongTerm: 0,
|
|
|
|
|
+ validStartTime: null,
|
|
|
|
|
+ validEndTime: null
|
|
|
|
|
+ };
|
|
|
|
|
+ this.validPeriodOpen = true;
|
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
|
+ if (this.$refs.validPeriodForm) {
|
|
|
|
|
+ this.$refs.validPeriodForm.clearValidate();
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ },
|
|
|
|
|
+ // 是否长期有效变化
|
|
|
|
|
+ handleLongTermChange(val) {
|
|
|
|
|
+ if (val === 0) {
|
|
|
|
|
+ this.validPeriodForm.validStartTime = null;
|
|
|
|
|
+ this.validPeriodForm.validEndTime = null;
|
|
|
|
|
+ this.$nextTick(() => {
|
|
|
|
|
+ if (this.$refs.validPeriodForm) {
|
|
|
|
|
+ this.$refs.validPeriodForm.clearValidate(['validStartTime', 'validEndTime']);
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ // 提交批量修改有效期
|
|
|
|
|
+ submitValidPeriodForm() {
|
|
|
|
|
+ this.$refs["validPeriodForm"].validate(valid => {
|
|
|
|
|
+ if (valid) {
|
|
|
|
|
+ // 非长期有效时校验开始时间不晚于结束时间
|
|
|
|
|
+ if (this.validPeriodForm.isLongTerm === 1) {
|
|
|
|
|
+ const start = new Date(this.validPeriodForm.validStartTime).getTime();
|
|
|
|
|
+ const end = new Date(this.validPeriodForm.validEndTime).getTime();
|
|
|
|
|
+ if (start >= end) {
|
|
|
|
|
+ this.msgError("兑换开始时间不能晚于或等于结束时间");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ batchUpdateValidPeriod(this.validPeriodForm).then(response => {
|
|
|
|
|
+ this.msgSuccess("批量修改有效期成功");
|
|
|
|
|
+ this.validPeriodOpen = false;
|
|
|
|
|
+ this.getList();
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|