feature/task1.0.0__0514__ch
向文可 2 years ago
parent 897b1eabf4
commit 2c5b6c86a5

@ -1,6 +1,5 @@
<template> <template>
<div class="layout-profile"> <div class="layout-profile">
<el-avatar :src="userInfo?.avatar" />
<el-dropdown :opts="opts"> <el-dropdown :opts="opts">
<span>{{ userInfo?.employeeName }}</span> <span>{{ userInfo?.employeeName }}</span>
</el-dropdown> </el-dropdown>

@ -1,5 +1,6 @@
import * as api from '@/api/operation/limit/limitProduct.js'; import * as api from '@/api/operation/limit/limitProduct.js';
import * as limitTimeAPI from '@/api/operation/limit/limitTime.js'; import * as limitTimeAPI from '@/api/operation/limit/limitTime.js';
import * as categoryAPI from '@/api/sales/category.js';
import { ElMessage, ElMessageBox } from '@/plugins/element-plus'; import { ElMessage, ElMessageBox } from '@/plugins/element-plus';
const state = () => ({ const state = () => ({
code: 'LimitProduct', code: 'LimitProduct',
@ -35,6 +36,7 @@ const actions = {
commit('setOpts', { commit('setOpts', {
...state.opts, ...state.opts,
init: true, init: true,
category: await categoryAPI.search({ pageIndex: 1, length: 9999 }),
timeRange: await limitTimeAPI.search({ activityId }), timeRange: await limitTimeAPI.search({ activityId }),
}); });
}, },

@ -37,7 +37,7 @@ const actions = {
company: await api.searchShip(), company: await api.searchShip(),
}); });
}, },
save: async ({ dispatch, state }, data) => { save: async ({ state }, data) => {
let res = null; let res = null;
if (data.every((item) => item.logistics.companyCode && item.logistics.trackingNo)) { if (data.every((item) => item.logistics.companyCode && item.logistics.trackingNo)) {
res = await api.sendAll( res = await api.sendAll(
@ -55,7 +55,6 @@ const actions = {
); );
if (res) { if (res) {
ElMessage.success('批量发货成功'); ElMessage.success('批量发货成功');
dispatch('search');
} else { } else {
ElMessage.error('批量发货失败'); ElMessage.error('批量发货失败');
} }

@ -28,7 +28,18 @@
<el-input v-model="state.condition.productName" /> <el-input v-model="state.condition.productName" />
</el-form-item> </el-form-item>
<el-form-item label="商品分类" prop="categoryId"> <el-form-item label="商品分类" prop="categoryId">
<el-select v-model="state.condition.categoryId" :opts="opts.category" /> <el-cascader
v-model="state.condition.categoryId"
:options="opts.category"
:props="{
checkStrictly: true,
expandTrigger: 'hover',
label: 'name',
value: 'id',
children: 'childList',
emitPath: false,
}"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>

@ -22,7 +22,7 @@
<el-form-item label="分类名称" prop="name"> <el-form-item label="分类名称" prop="name">
<el-input v-model="form.name" /> <el-input v-model="form.name" />
</el-form-item> </el-form-item>
<el-form-item label="分类图片" prop="picture"> <el-form-item label="分类图片" prop="picture" :required="!form.parentId">
<el-upload-image v-model="form.picture" config-id="product-category/" /> <el-upload-image v-model="form.picture" config-id="product-category/" />
</el-form-item> </el-form-item>
<el-form-item label="是否显示" prop="isEnable"> <el-form-item label="是否显示" prop="isEnable">
@ -55,7 +55,17 @@
}); });
const rules = reactive({ const rules = reactive({
name: [{ required: true, message: '分类名称不能为空' }], name: [{ required: true, message: '分类名称不能为空' }],
picture: [{ required: true, message: '分类图片不能为空' }], picture: [
{
validator(rule, value, cb) {
if (!form.parentId && !value) {
cb('一级分类图片不能为空');
} else {
cb();
}
},
},
],
isEnable: [{ required: true, message: '是否显示不能为空' }], isEnable: [{ required: true, message: '是否显示不能为空' }],
}); });
const list = computed(() => store.state.category.list); const list = computed(() => store.state.category.list);

@ -1,13 +1,6 @@
<template> <template>
<el-dialog v-model="visible" height="500px" title="批量发货" width="800px"> <el-dialog v-model="visible" height="500px" title="批量发货" width="800px">
<TableList <TableList v-loading="loading" :code="code" :config="config" :data="list" :operation="[]" />
v-loading="loading"
:code="code"
:config="config"
:data="list"
:operation="[]"
@search="handleSearch"
/>
<template #footer> <template #footer>
<el-button type="danger" @click="handleClose"></el-button> <el-button type="danger" @click="handleClose"></el-button>
<el-button :loading="loading" type="primary" @click="handleSave"></el-button> <el-button :loading="loading" type="primary" @click="handleSave"></el-button>

@ -17,10 +17,17 @@
<el-input v-model="state.condition.name" /> <el-input v-model="state.condition.name" />
</el-form-item> </el-form-item>
<el-form-item label="商品分类" prop="categoryId"> <el-form-item label="商品分类" prop="categoryId">
<el-select <el-cascader
v-model="state.condition.categoryId" v-model="state.condition.categoryId"
:config="{ label: 'name', value: 'id' }" :options="opts.category"
:opts="opts.category" :props="{
checkStrictly: true,
expandTrigger: 'hover',
label: 'name',
value: 'id',
children: 'childList',
emitPath: false,
}"
/> />
</el-form-item> </el-form-item>
</el-form> </el-form>
@ -97,7 +104,6 @@
/* 列表配置 */ /* 列表配置 */
const config = reactive({ const config = reactive({
page: false,
columns: [ columns: [
{ {
type: 'selection', type: 'selection',

Loading…
Cancel
Save