测试问题修改7

This commit is contained in:
zzyuan 2025-03-28 17:33:06 +08:00
parent 3ef015d70c
commit cf18870ae5
21 changed files with 166 additions and 83 deletions

Binary file not shown.

Binary file not shown.

View File

@ -137,3 +137,40 @@ export function getDrpUnitListApi(data) {
data: data
})
}
// 下载模板
export function downLoadExportTemplate(data) {
return request({
url: '/smart-canteen/api/v4/export/downLoad',
method: 'post',
headers: {
"merchant-id":"378915229716713472",
},
data: data
})
}
// export function downLoadExportTemplate(data) {
// return request({
// url: '/smart-canteen/api/v4/export/downLoad',
// method: 'post',
// data: data,
// responseType: 'blob'
// })
// }

View File

@ -33,14 +33,14 @@
<el-form-item label="最小金额" prop="walletMinAmount">
<el-input
v-model="queryParams.walletMinAmount"
placeholder="请输入最小金额" style="width: 240px" @input="(v)=>(queryParams.walletMinAmount=v.replace(/[^\d.]/g,''))">
placeholder="请输入最小金额" style="width: 240px" clearable @input="(v)=>(queryParams.walletMinAmount=v.replace(/[^\d.]/g,''))">
<template slot="append"></template>
</el-input>
</el-form-item>
<el-form-item label="最大金额" prop="walletMaxAmount">
<el-input
v-model="queryParams.walletMaxAmount"
placeholder="请输入最大金额" style="width: 240px" @input="(v)=>(queryParams.walletMaxAmount=v.replace(/[^\d.]/g,''))">
placeholder="请输入最大金额" style="width: 240px" clearable @input="(v)=>(queryParams.walletMaxAmount=v.replace(/[^\d.]/g,''))">
<template slot="append"></template>
</el-input>
</el-form-item>

View File

@ -20,7 +20,7 @@
<el-form-item label="关键字">
<el-input v-model="queryParams1.keyword" placeholder="请输入关键字" maxlength="20" clearable style="width: 240px"/>
</el-form-item>
<el-form-item label="组织" prop="orgIdList">
<el-form-item label="所属组织" prop="orgIdList">
<el-cascader v-model="queryParams1.orgIdList"
:options="deptOptions" :filterable="true" style="width: 240px" :show-all-levels="false"
:props="{

View File

@ -171,7 +171,7 @@
<el-form-item label="区域名称" prop="areaName">
<el-input
v-model="form.areaName"
type="text"
type="text" clearable
placeholder="请输入区域名称"
maxlength="30"
/>
@ -183,7 +183,7 @@
<el-form-item label="区域描述" prop="areaDescribe">
<el-input
v-model="form.areaDescribe"
type="text"
type="text" clearable
placeholder="请输入区域描述"
maxlength="30"
/>
@ -205,7 +205,7 @@
<el-form-item label="负责人" prop="director">
<el-input
v-model="form.director"
type="text"
type="text" clearable
placeholder="请输入负责人"
maxlength="30"
/>
@ -217,7 +217,7 @@
v-model="form.contactTel"
type="text" @input="(v)=>(form.contactTel=v.replace(/[^\d]/g,''))"
placeholder="请输入联系方式"
maxlength="11"
maxlength="11" clearable
/>
</el-form-item>
</el-col>

View File

@ -4,7 +4,7 @@
<el-form-item label="所属区域" prop="areaIds">
<el-cascader
v-model="queryParams.areaIds" :show-all-levels="false" :filterable="true"
:options="treeOptions" :props="treeProps" collapse-tags
:options="treeOptions" :props="treeProps" collapse-tags clearable
@change="handleTreeChange"></el-cascader>
</el-form-item>
<el-form-item label="食堂名称" prop="canteenName">

View File

@ -4,11 +4,11 @@
<el-form-item label="所属区域" prop="areaArr">
<el-cascader
v-model="queryParams.areaArr" :show-all-levels="false" :filterable="true"
:options="treeOptions" :props="treeProps" collapse-tags
:options="treeOptions" :props="treeProps" collapse-tags clearable
@change="handleTreeChange"></el-cascader>
</el-form-item>
<el-form-item label="所属食堂" prop="canteenId">
<el-select v-model="queryParams.canteenId" placeholder="请选择所属食堂" style="width: 100%;">
<el-select v-model="queryParams.canteenId" placeholder="请选择所属食堂" clearable style="width: 100%;">
<el-option v-for="item in canteenOptions"
:key="item.canteenId"
:label="item.canteenName"
@ -241,7 +241,7 @@
</el-col>
<el-col :span="12">
<el-form-item label="档口标签" prop="labelNameList">
<el-select v-model="baseForm.labelNameList" multiple placeholder="请选择档口标签" style="width: 100%;">
<el-select v-model="baseForm.labelNameList" multiple placeholder="请选择档口标签" style="width: 100%;" clearable>
<el-option
v-for="dict in dict.type.stall_tag"
:key="dict.value"
@ -267,11 +267,11 @@
:label="dict.label"
:value="dict.label"
/>
<el-option v-for="item in kindOptions"
<!-- <el-option v-for="item in kindOptions"
:key="item.kindId"
:label="item.kindName"
:value="item.kindId"
></el-option>
></el-option> -->
</el-select>
</el-form-item>
</el-col>

View File

@ -539,8 +539,7 @@
],
stallId: [
{ required: true, message: "所属档口不能为空", trigger: "blur" }
],
]
},
metadata:{
"voiceRemindSuccess": "1",
@ -573,7 +572,7 @@
openMenu:false,
dialogMenuParams:{
keyWord:"早餐",
applyDate:new Date().toISOString().substr(0, 10)
applyDate:this.formatDate(new Date())
},
recipeId:"",
menuData:[],
@ -820,6 +819,13 @@
});
});
},
formatDate(date) {
// YYYY-MM-DD
const year = date.getFullYear();
const month = String(date.getMonth() + 1).padStart(2, '0'); // 0
const day = String(date.getDate()).padStart(2, '0');
return `${year}-${month}-${day}`;
}
}

View File

@ -144,7 +144,6 @@
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleBatchDel"
@ -152,8 +151,8 @@
</el-col>
<el-col :span="1.5">
<el-button
type="success"
size="mini"
type="primary"
size="mini" plain
:disabled="multiple"
@click="handleBatchEdit"
>批量修改类别
@ -178,13 +177,13 @@
</el-button>
</el-upload>
</el-col>
<!-- <el-col :span="1.5">
<el-button
type="success"
size="mini"
>批量导入
</el-button>
</el-col> -->
<el-col :span="1.5">
<el-button
size="mini"
@click="importTemplate"
>模板下载
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -366,9 +365,10 @@
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { systemMaterialTreeApi,addMaterialTypeApi,updateMaterialTypeApi,removeMaterialTypeApi,systemAreaTreeApi} from "@/api/dish/material";
import { getMaterialListApi,addMaterialApi, updateMaterialApi, removeMaterialApi,batchRemoveMaterialApi,batchUpdateMaterialApi} from "@/api/dish/material";
import { getMaterialListApi,addMaterialApi, updateMaterialApi, removeMaterialApi,batchRemoveMaterialApi,batchUpdateMaterialApi,downLoadExportTemplate} from "@/api/dish/material";
import MaterialDialog from './components/MaterialDialog.vue';
import { getToken } from '@/utils/auth'
import { getToken } from '@/utils/auth';
import { downloadFileByUrl } from '@/utils/download'
export default {
name: "Material",
components: {
@ -728,6 +728,13 @@ export default {
this.getList()
},
/** 下载模板操作 */
importTemplate() {
let url = window.location.origin + '/glweb/template/批量新增原料模板.xlsx';
console.log(url)
downloadFileByUrl(url)
},
// getParentName(list, id) {
// try {

View File

@ -542,8 +542,8 @@ export default {
var days = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
var dayOfWeek = start.getDay();
let obj = {
applyDate:start.toISOString().split('T')[0],
applyDateStr:start.toISOString().split('T')[0]+" "+days[dayOfWeek],
applyDate:this.formatDate(start),
applyDateStr:this.formatDate(start)+" "+days[dayOfWeek],
detailList:[
{
mealtimeType:"1",
@ -700,6 +700,11 @@ export default {
item.isChecked = true;
}
})
//
let typeIndex = this.dishesTypeList.findIndex(v=>v.typeId==obj.typeId)
if(typeIndex==-1){
this.dishesTypeList.push({typeId:obj.typeId,typeName:obj.typeName})
}
}else{
this.dishesList.splice(index,1)
//
@ -709,11 +714,6 @@ export default {
}
})
}
//
let index2 = this.dishesTypeList.findIndex(v=>v.typeId==obj.typeId)
if(index2==-1){
this.dishesTypeList.push({typeId:obj.typeId,typeName:obj.typeName})
}
//
this.choseDishesType(obj)
},
@ -726,6 +726,12 @@ export default {
this.dishesTableList.push(dish)
}
})
if(this.dishesTableList.length==0){//
let typeIndex = this.dishesTypeList.findIndex(v=>v.typeId==item.typeId)
if(typeIndex>-1){
this.dishesTypeList.splice(typeIndex,1)
}
}
},
//
handleDelDishes(item){
@ -740,6 +746,12 @@ export default {
dish.isChecked = null;
}
})
if(this.dishesTableList.length==0){//
let typeIndex = this.dishesTypeList.findIndex(v=>v.typeId==item.typeId)
if(typeIndex>-1){
this.dishesTypeList.splice(typeIndex,1)
}
}
}
}).catch(() => {});
},

View File

@ -437,11 +437,9 @@ export default {
initEditDetail(){
console.log(this.baseInfo)
if(this.baseInfo.recipeType==1){//
console.log(this.baseInfo.applyDateList)
let length = this.baseInfo.applyDateList.length
this.dateRange[0] = this.baseInfo.applyDateList[0]
this.dateRange[1] = this.baseInfo.applyDateList[length-1]
console.log(this.dateRange)
this.dateRangeList = this.getDateRange(this.dateRange[0],this.dateRange[1])
this.dateRangeRadio = this.dateRange[0];
this.detailList = this.dateRangeList[0].detailList;
@ -615,11 +613,14 @@ export default {
this.effOptions = response.data.records;
});
},
//
//----------------
changeRecipeType(e){
console.log(this.baseInfo.recipeType)
if(this.baseInfo.recipeType==1){//
console.log(this.dateRange)
this.dateRangeList = this.getDateRange(this.dateRange[0],this.dateRange[1])
console.log(this.dateRangeList)
this.dateRangeRadio = this.formatDate(this.dateRange[0])
this.detailList = this.dateRangeList[0].detailList
}
@ -673,15 +674,15 @@ export default {
//-
getDateRange(startDate, endDate) {
let start = new Date(startDate);
let end = new Date(endDate);
let end = new Date(endDate)
let dateArray = [];
while (start <= end) {
//
var days = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
var dayOfWeek = start.getDay();
let obj = {
applyDate:start.toISOString().split('T')[0],
applyDateStr:start.toISOString().split('T')[0]+" "+days[dayOfWeek],
applyDate:this.formatDate(start),
applyDateStr:this.formatDate(start)+" "+days[dayOfWeek],
detailList:[
{
mealtimeType:"1",
@ -827,7 +828,7 @@ export default {
chosenDishes(obj){
//
let index = this.dishesList.findIndex(v=>v.dishesId==obj.dishesId)
if(index==-1){
if(index==-1){//-
let dish = Object.assign({}, obj)
this.$set(dish,'price',Number(dish.price/100))
this.$set(dish,'salePrice',Number(dish.salePrice/100)||0)
@ -840,6 +841,11 @@ export default {
item.isChecked = true;
}
})
//
let typeIndex = this.dishesTypeList.findIndex(v=>v.typeId==obj.typeId)
if(typeIndex==-1){
this.dishesTypeList.push({typeId:obj.typeId,typeName:obj.typeName})
}
}else{
this.dishesList.splice(index,1)
//
@ -849,17 +855,11 @@ export default {
}
})
}
//
let index2 = this.dishesTypeList.findIndex(v=>v.typeId==obj.typeId)
if(index2==-1){
this.dishesTypeList.push({typeId:obj.typeId,typeName:obj.typeName})
}
//
this.choseDishesType(obj)
},
//-
choseDishesType(item){
console.log(item)
this.dishesType = item.typeId;
this.dishesTableList = []
this.dishesList.forEach(dish=>{
@ -867,7 +867,12 @@ export default {
this.dishesTableList.push(dish)
}
})
console.log(this.dishesTableList)
if(this.dishesTableList.length==0){//
let typeIndex = this.dishesTypeList.findIndex(v=>v.typeId==item.typeId)
if(typeIndex>-1){
this.dishesTypeList.splice(typeIndex,1)
}
}
},
//
handleDelDishes(item){
@ -882,6 +887,12 @@ export default {
dish.isChecked = null;
}
})
if(this.dishesTableList.length==0){//
let typeIndex = this.dishesTypeList.findIndex(v=>v.typeId==item.typeId)
if(typeIndex>-1){
this.dishesTypeList.splice(typeIndex,1)
}
}
}
}).catch(() => {});
},

View File

@ -27,7 +27,7 @@
</el-cascader>
</el-form-item>
<el-form-item label="所属食堂" prop="canteenIds">
<el-select v-model="queryParams.canteenIds" multiple placeholder="请选择所属食堂" style="width: 100%;" @change="handleCanteenChange">
<el-select v-model="queryParams.canteenIds" clearable multiple placeholder="请选择所属食堂" style="width: 100%;" @change="handleCanteenChange">
<el-option v-for="item in canteenOptions"
:key="item.canteenId"
:label="item.canteenName"
@ -36,7 +36,7 @@
</el-select>
</el-form-item>
<el-form-item label="所属档口" prop="stallIds">
<el-select v-model="queryParams.stallIds" multiple placeholder="请选择所属档口" style="width: 100%;" >
<el-select v-model="queryParams.stallIds" clearable multiple placeholder="请选择所属档口" style="width: 100%;" >
<el-option v-for="item in stallOptions"
:key="item.stallId"
:label="item.stallName"

View File

@ -3,7 +3,7 @@
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="98px">
<el-form-item label="营养信息类别" prop="type" >
<el-cascader
v-model="typeSelected"
v-model="typeSelected" clearable
:options="cascaderOptions"
@change="handleChange"
></el-cascader>

View File

@ -25,7 +25,7 @@
<el-input v-model="queryParams.tradeNo" placeholder="请输入交易号" maxlength="20" clearable style="width: 220px"/>
</el-form-item>
<el-form-item label="餐次">
<el-select v-model="queryParams.mealtimeTypeList" multiple style="width: 220px" clearable>
<el-select v-model="queryParams.mealtimeTypeList" multiple collapse-tags style="width: 220px" clearable>
<el-option label="早餐" value="1"></el-option>
<el-option label="午餐" value="2"></el-option>
<el-option label="下午茶" value="3"></el-option>
@ -48,11 +48,11 @@
emitPath: false,// falseid
checkStrictly: true,//
value:'id',label:'treeName'
}" clearable @change="handleAreaChange">
}" clearable collapse-tags @change="handleAreaChange">
</el-cascader>
</el-form-item>
<el-form-item label="所属食堂" prop="canteenIdList">
<el-select v-model="queryParams.canteenIdList" multiple placeholder="请选择所属食堂" style="width: 220px" @change="handleCanteenChange">
<el-select v-model="queryParams.canteenIdList" multiple collapse-tags clearable placeholder="请选择所属食堂" style="width: 220px" @change="handleCanteenChange">
<el-option v-for="item in canteenOptions"
:key="item.canteenId"
:label="item.canteenName"
@ -61,7 +61,7 @@
</el-select>
</el-form-item>
<el-form-item label="所属档口" prop="stallIdList">
<el-select v-model="queryParams.stallIdList" multiple placeholder="请选择所属档口" style="width: 220px" >
<el-select v-model="queryParams.stallIdList" multiple collapse-tags clearable placeholder="请选择所属档口" style="width: 220px" >
<el-option v-for="item in stallOptions"
:key="item.stallId"
:label="item.stallName"
@ -70,7 +70,7 @@
</el-select>
</el-form-item>
<el-form-item label="订单状态">
<el-select v-model="queryParams.orderStateMixList" multiple style="width: 220px" clearable>
<el-select v-model="queryParams.orderStateMixList" multiple collapse-tags clearable style="width: 220px">
<el-option v-for="item in orderStateOptions"
:key="item.key"
:label="item.value"
@ -79,7 +79,7 @@
</el-select>
</el-form-item>
<el-form-item label="支付方式">
<el-select v-model="queryParams.payTypeList" multiple style="width: 220px" clearable>
<el-select v-model="queryParams.payTypeList" multiple collapse-tags clearable style="width: 220px">
<el-option v-for="item in orderPayOptions"
:key="item.key"
:label="item.value"

View File

@ -18,7 +18,7 @@
<el-input v-model="queryParams.custSearchInfo" placeholder="请输入用户姓名,编号,手机号" maxlength="20" clearable style="width: 220px"/>
</el-form-item>
<el-form-item label="订单类型" prop="orderTypeList">
<el-select v-model="queryParams.orderTypeList" multiple placeholder="请选择订单类型" style="width: 220px" collapse-tags>
<el-select v-model="queryParams.orderTypeList" multiple clearable collapse-tags placeholder="请选择订单类型" style="width: 220px">
<el-option v-for="item in orderTypeOptions"
:key="item.key"
:label="item.value"
@ -61,7 +61,7 @@
</el-cascader>
</el-form-item>
<el-form-item label="所属食堂" prop="canteenIdList">
<el-select v-model="queryParams.canteenIdList" multiple collapse-tags placeholder="请选择所属食堂" style="width: 220px" @change="handleCanteenChange">
<el-select v-model="queryParams.canteenIdList" clearable multiple collapse-tags placeholder="请选择所属食堂" style="width: 220px" @change="handleCanteenChange">
<el-option v-for="item in canteenOptions"
:key="item.canteenId"
:label="item.canteenName"
@ -70,7 +70,7 @@
</el-select>
</el-form-item>
<el-form-item label="所属档口" prop="stallIdList">
<el-select v-model="queryParams.stallIdList" multiple collapse-tags placeholder="请选择所属档口" style="width: 220px" >
<el-select v-model="queryParams.stallIdList" clearable multiple collapse-tags placeholder="请选择所属档口" style="width: 220px" >
<el-option v-for="item in stallOptions"
:key="item.stallId"
:label="item.stallName"
@ -79,7 +79,7 @@
</el-select>
</el-form-item>
<el-form-item label="订单状态">
<el-select v-model="queryParams.orderStateMixList" multiple collapse-tags style="width: 220px" clearable>
<el-select v-model="queryParams.orderStateMixList" clearable multiple collapse-tags style="width: 220px">
<el-option v-for="item in orderStateOptions"
:key="item.key"
:label="item.value"
@ -88,7 +88,7 @@
</el-select>
</el-form-item>
<el-form-item label="支付方式">
<el-select v-model="queryParams.payTypeList" multiple collapse-tags style="width: 220px" clearable>
<el-select v-model="queryParams.payTypeList" clearable multiple collapse-tags style="width: 220px">
<el-option v-for="item in orderPayOptions"
:key="item.key"
:label="item.value"
@ -97,7 +97,7 @@
</el-select>
</el-form-item>
<el-form-item label="配送方式">
<el-select v-model="queryParams.deliveryTypeList" multiple collapse-tags style="width: 220px" clearable>
<el-select v-model="queryParams.deliveryTypeList" clearable multiple collapse-tags style="width: 220px">
<el-option v-for="item in deliveryTypeOptions"
:key="item.key"
:label="item.value"

View File

@ -8,7 +8,7 @@
@change="handleTreeChange"></el-cascader>
</el-form-item>
<el-form-item label="所属超市" prop="canteenIdList">
<el-select v-model="queryParams.canteenIdList" multiple collapse-tags placeholder="请选择所属超市" style="width: 240px" clearable>
<el-select v-model="queryParams.canteenIdList" clearable multiple collapse-tags placeholder="请选择所属超市" style="width: 240px">
<el-option v-for="item in supermarketOptions"
:key="item.supermarketId"
:label="item.supermarketName"

View File

@ -143,8 +143,6 @@
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleBatchDel"
@ -152,10 +150,8 @@
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
type="primary"
size="mini" plain
:disabled="multiple"
@click="handleBatchEdit"
>批量修改类别
@ -182,6 +178,13 @@
</el-button>
</el-upload>
</el-col>
<el-col :span="1.5">
<el-button
size="mini"
@click="importTemplate"
>模板下载
</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
@ -348,7 +351,8 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import { systemMaterialTreeApi,addMaterialTypeApi,updateMaterialTypeApi,removeMaterialTypeApi,systemAreaTreeApi} from "@/api/superStore/shopMaterial";
import { getMaterialListApi,addMaterialApi, updateMaterialApi, removeMaterialApi,batchRemoveMaterialApi,batchUpdateMaterialApi} from "@/api/superStore/shopMaterial";
import MaterialDialog from './components/MaterialDialog.vue';
import { getToken } from '@/utils/auth'
import { getToken } from '@/utils/auth';
import { downloadFileByUrl } from '@/utils/download'
export default {
name: "Material",
components: {
@ -438,7 +442,7 @@ export default {
//
headers: { Authorization: 'Bearer ' + getToken() },
//
url: process.env.VUE_APP_BASE_API + '/smart-canteen/api/v1/menumaterial/batch/import/material',
url: process.env.VUE_APP_BASE_API + '/smart-canteen/api/v1/menumaterial/batch/import/material-product',
},
};
},
@ -707,6 +711,12 @@ export default {
this.$modal.msgSuccess("后台导入中...");
this.getList()
},
/** 下载模板操作 */
importTemplate() {
let url = window.location.origin + '/glweb/template/批量新增商品模板.xlsx';
console.log(url)
downloadFileByUrl(url)
},
// getParentName(list, id) {

View File

@ -4,11 +4,11 @@
<el-form-item label="所属区域" prop="areaIdList">
<el-cascader
v-model="queryParams.areaIdList" :show-all-levels="false" :filterable="true"
:options="treeOptions" :props="treeProps" collapse-tags
:options="treeOptions" :props="treeProps" collapse-tags clearable
@change="handleTreeChange"></el-cascader>
</el-form-item>
<el-form-item label="仓库" prop="warehouseId">
<el-select v-model="queryParams.warehouseId" placeholder="请选择所属仓库" style="width: 100%;">
<el-select v-model="queryParams.warehouseId" clearable placeholder="请选择所属仓库" style="width: 100%;">
<el-option v-for="item in wareHouseOptions"
:key="item.warehouseId"
:label="item.warehouseName"

View File

@ -26,7 +26,7 @@
</el-cascader>
</el-form-item>
<el-form-item label="所属超市" prop="canteenIdList">
<el-select v-model="queryParams.canteenIdList" multiple collapse-tags placeholder="请选择所属超市" style="width: 220px" @change="handleCanteenChange">
<el-select v-model="queryParams.canteenIdList" multiple clearable collapse-tags placeholder="请选择所属超市" style="width: 220px" @change="handleCanteenChange">
<el-option v-for="item in supermarketOptions"
:key="item.supermarketId"
:label="item.supermarketName"

View File

@ -8,7 +8,7 @@
emitPath: false,// falseid
checkStrictly: true,//
value:'id',label:'treeName'
}" clearable>
}" clearable collapse-tags>
</el-cascader>
</el-form-item>
<el-form-item label="单位名称" prop="unitName">