提交 d90f80d8 authored 作者: lidongxu's avatar lidongxu

fix(bi/store): 旺店通店铺_修复完成

同上
上级 ad7b8a83
...@@ -60,11 +60,14 @@ ...@@ -60,11 +60,14 @@
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 50vh; height: 50vh;
padding: 20px;
.el-dialog__header{ .el-dialog__header{
padding-top: 10px;
height: 40px; height: 40px;
} }
.el-dialog__body { .el-dialog__body {
margin-top: 20px;
height: calc(50vh - 40px - 32px); height: calc(50vh - 40px - 32px);
} }
} }
......
...@@ -129,7 +129,8 @@ aside { ...@@ -129,7 +129,8 @@ aside {
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
padding: 20px; padding: 20px;
>div{
>div {
width: 100%; width: 100%;
padding: 20px; padding: 20px;
} }
......
...@@ -20,12 +20,12 @@ import { parseTime } from './date' ...@@ -20,12 +20,12 @@ import { parseTime } from './date'
*/ */
export function formatDate(cellValue) { export function formatDate(cellValue) {
if (cellValue == null || cellValue == "") return ""; if (cellValue == null || cellValue == "") return "";
var date = new Date(cellValue) var date = new Date(cellValue)
var year = date.getFullYear() var year = date.getFullYear()
var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1 var month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1
var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate() var day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate()
var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours() var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes() var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds() var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds
} }
...@@ -233,7 +233,7 @@ export function getTime(type) { ...@@ -233,7 +233,7 @@ export function getTime(type) {
export function debounce(func, wait, immediate) { export function debounce(func, wait, immediate) {
let timeout, args, context, timestamp, result let timeout, args, context, timestamp, result
const later = function() { const later = function () {
// 据上一次触发时间间隔 // 据上一次触发时间间隔
const last = +new Date() - timestamp const last = +new Date() - timestamp
...@@ -250,7 +250,7 @@ export function debounce(func, wait, immediate) { ...@@ -250,7 +250,7 @@ export function debounce(func, wait, immediate) {
} }
} }
return function(...args) { return function (...args) {
context = this context = this
timestamp = +new Date() timestamp = +new Date()
const callNow = immediate && !timeout const callNow = immediate && !timeout
...@@ -345,7 +345,7 @@ export function makeMap(str, expectsLowerCase) { ...@@ -345,7 +345,7 @@ export function makeMap(str, expectsLowerCase) {
? val => map[val.toLowerCase()] ? val => map[val.toLowerCase()]
: val => map[val] : val => map[val]
} }
export const exportDefault = 'export default ' export const exportDefault = 'export default '
export const beautifierConf = { export const beautifierConf = {
...@@ -402,17 +402,27 @@ export function camelCase(str) { ...@@ -402,17 +402,27 @@ export function camelCase(str) {
export function isNumberStr(str) { export function isNumberStr(str) {
return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str) return /^[+-]?(0|([1-9]\d*))(\.\d+)?$/g.test(str)
} }
// 清除对象里属性的非响应式的值 // 清除对象里属性的非响应式的值
/**
* 深度重置对象的属性值
* @param {Object} obj - 需要重置的对象
* @param {Array} props - 需要重置的属性数组
*/
export function resetObjValue(obj, props) { export function resetObjValue(obj, props) {
for (let prop in obj) { for (let prop in obj) {
if (obj.hasOwnProperty(prop)) { if (obj.hasOwnProperty(prop)) {
// 判断属性值是否为数组或对象
if (Array.isArray(obj[prop])) { if (Array.isArray(obj[prop])) {
obj[prop] = []; obj[prop] = [];
obj[prop].forEach((item, index) => {
if (typeof item === 'object' && item !== null) {
resetObjValue(obj[prop], Object.keys(item));
}
});
} else if (typeof obj[prop] === 'object' && obj[prop] !== null) { } else if (typeof obj[prop] === 'object' && obj[prop] !== null) {
obj[prop] = {}; obj[prop] = {};
resetObjValue(obj[prop], Object.keys(obj[prop]));
} else { } else {
obj[prop] = undefined; // 基础类型重置为 undefined obj[prop] = undefined; // 基础类型重置为 undefined
} }
......
...@@ -68,12 +68,11 @@ ...@@ -68,12 +68,11 @@
popper-class="my_popper"></el-cascader> popper-class="my_popper"></el-cascader>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" <template #footer>
class="dialog-footer">
<el-button type="primary" <el-button type="primary"
@click="submitForm">确 定</el-button> @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
</div> </template>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
...@@ -341,10 +340,6 @@ getSeriesGoodsTagList() ...@@ -341,10 +340,6 @@ getSeriesGoodsTagList()
} }
} }
} }
.dialog-footer {
align-self: flex-end;
}
} }
} }
......
<template> <template>
<div class="app-container"> <div class="app-container">
<!-- 搜索表单 --> <div class="content">
<el-form :model="queryParams" <!-- 搜索表单 -->
ref="formRef" <el-form :model="queryParams"
size="small" inline
:inline="true" v-show="showSearch"
v-show="showSearch" label-width="68px">
label-width="68px"> <el-form-item label="店铺名字"
<el-form-item label="店铺名字" prop="storeName">
prop="storeName"> <el-input v-model="queryParams.storeName"
<el-input v-model="queryParams.storeName" placeholder="请输入店铺名字"
placeholder="请输入店铺名字" clearable
clearable @input="handleQuery" />
@input="handleQuery" /> </el-form-item>
</el-form-item> <el-form-item label="所属平台">
<el-form-item label="所属平台"> <el-select v-model="queryParams.platformId"
<el-select v-model="queryParams.platformId" placeholder="请选择平台"
placeholder="请选择平台" clearable
clearable @change="handleQuery">
@change="handleQuery"> <el-option v-for="dict in sale_platform"
<el-option v-for="dict in sale_platform" :key="dict.value"
:key="dict.value" :value="dict.value"
:value="dict.value" :label="dict.label">
:label="dict.label"> </el-option>
</el-option> </el-select>
</el-select> </el-form-item>
</el-form-item> <el-form-item label="店铺状态">
<el-form-item label="店铺状态"> <el-select v-model="queryParams.status"
<el-select v-model="queryParams.status" placeholder="店铺状态"
placeholder="店铺状态" clearable
clearable @change="handleQuery">
@change="handleQuery"> <el-option v-for="dict in sys_normal_disable"
<el-option v-for="dict in sys_normal_disable" :key="dict.value"
:key="dict.value" :label="dict.label"
:label="dict.label" :value="dict.value" />
:value="dict.value" /> </el-select>
</el-select> </el-form-item>
</el-form-item> </el-form>
</el-form> <!-- 操作栏 -->
<!-- 操作栏 --> <el-row :gutter="10"
<el-row :gutter="10" class="mb8">
class="mb8"> <el-col :span="1.5">
<el-col :span="1.5"> <el-button type="primary"
<el-button type="primary" plain
plain icon="Plus"
icon="el-icon-plus" @click="handleAdd"
size="mini" v-hasPermi="['gen:store:add']">新增</el-button>
@click="handleAdd" </el-col>
v-hasPermi="['gen:store:add']">新增</el-button> <right-toolbar v-model:showSearch="showSearch"
</el-col> @queryTable="getList"
<right-toolbar v-model:showSearch="showSearch" :columns="columns"></right-toolbar>
@queryTable="getList" </el-row>
:columns="columns"></right-toolbar> <!-- 表格数据 -->
</el-row> <el-table v-loading="loading"
<!-- 表格数据 --> :data="storeList">
<el-table v-loading="loading" <el-table-column label="店铺编码"
:data="storeList"> prop="storeCode"
<el-table-column label="店铺编码" width="80px"
prop="storeCode" v-if="columns[0].visible" />
width="80px" <el-table-column label="店铺名称"
v-if="columns[0].visible" /> prop="storeName"
<el-table-column label="店铺名称" width="360px"
prop="storeName" v-if="columns[1].visible" />
width="360px" <el-table-column label="渠道"
v-if="columns[1].visible" /> prop="channelId"
<el-table-column label="渠道" v-if="columns[2].visible">
prop="channelId" <template v-slot="scope">
v-if="columns[2].visible"> <dict-tag :options="sale_channel"
<template v-slot="scope"> :value="scope.row.channelId" />
<dict-tag :options="sale_channel" </template>
:value="scope.row.channelId" /> </el-table-column>
</template> <el-table-column label="所属平台"
</el-table-column> prop="platformId"
<el-table-column label="所属平台" v-if="columns[3].visible">
prop="platformId" <template v-slot="scope">
v-if="columns[3].visible"> <dict-tag :options="sale_platform"
<template v-slot="scope"> :value="scope.row.platformId" />
<dict-tag :options="sale_platform" </template>
:value="scope.row.platformId" /> </el-table-column>
</template> <el-table-column label="店铺状态"
</el-table-column> prop="status"
<el-table-column label="店铺状态" v-if="columns[4].visible">
prop="status" <template v-slot="scope">
v-if="columns[4].visible"> <el-switch v-model="scope.row.status"
<template v-slot="scope"> active-value="0"
<el-switch v-model="scope.row.status" inactive-value="1"
active-value="0" @change="handleDelete(scope.row)"></el-switch>
inactive-value="1" </template>
@change="handleDelete(scope.row)"></el-switch> </el-table-column>
</template> <el-table-column label="操作"
</el-table-column> class-name="small-padding fixed-width"
<el-table-column label="操作" v-if="columns[5].visible">
class-name="small-padding fixed-width" <template v-slot="scope">
v-if="columns[5].visible"> <el-button text
<template v-slot="scope"> type="primary"
<el-button size="mini" icon="Edit"
type="text" @click="handleUpdate(scope.row)"
icon="el-icon-edit" v-hasPermi="['gen:store:edit']">修改</el-button>
@click="handleUpdate(scope.row)" </template>
v-hasPermi="['gen:store:edit']">修改</el-button> </el-table-column>
</template> </el-table>
</el-table-column> <pagination v-show="total > 0"
</el-table> :total="total"
<pagination v-show="total > 0" v-model:page="queryParams.pageNum"
:total="total" v-model:limit="queryParams.pageSize"
v-model:page="queryParams.pageNum" @pagination="getList" />
v-model:limit="queryParams.pageSize" </div>
@pagination="getList" />
<!-- 添加或修改对话框 --> <!-- 添加或修改对话框 -->
<el-dialog :title="title" <el-dialog :title="title"
v-model:visible="open" v-model="open">
append-to-body> <el-form ref="formRef"
<el-form ref="form"
:model="form" :model="form"
:rules="rules" :rules="rules"
label-width="80px" label-width="80px">
v-a>
<el-form-item label="店铺编码" <el-form-item label="店铺编码"
prop="storeCode"> prop="storeCode">
<el-input v-model="form.storeCode" <el-input v-model="form.storeCode"
...@@ -130,9 +126,8 @@ ...@@ -130,9 +126,8 @@
<el-form-item label="渠道" <el-form-item label="渠道"
prop="channelId"> prop="channelId">
<el-radio-group v-model="form.channelId"> <el-radio-group v-model="form.channelId">
<el-radio v-for="dict in dict.type.sale_channel" <el-radio v-for="dict in sale_channel"
:key="dict.value" :value="dict.value">
:label="dict.value">
{{ dict.label }} {{ dict.label }}
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
...@@ -140,31 +135,29 @@ ...@@ -140,31 +135,29 @@
<el-form-item label="所属平台" <el-form-item label="所属平台"
prop="platformId"> prop="platformId">
<el-radio-group v-model="form.platformId"> <el-radio-group v-model="form.platformId">
<el-radio v-for="dict in dict.type.sale_platform" <el-radio v-for="dict in sale_platform"
:key="dict.value" :value="dict.value">
:label="dict.value">
{{ dict.label }} {{ dict.label }}
</el-radio> </el-radio>
</el-radio-group> </el-radio-group>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" <template #footer>
class="dialog-footer">
<el-button type="primary" <el-button type="primary"
@click="submitForm">确 定</el-button> @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
</div> </template>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script setup> <script setup>
import { listStore, addStore, updateStore } from "@/api"; import { listStore, addStore, updateStore } from "@/api";
import { debounce } from '@/utils' import { debounce, resetObjValue } from '@/utils'
const {proxy} = getCurrentInstance(); const { proxy } = getCurrentInstance();
const { sale_channel, sale_platform, sys_normal_disable } = proxy.useDict(['sale_channel', 'sale_platform', 'sys_normal_disable']);// 渠道,平台,状态字典 const { sale_channel, sale_platform, sys_normal_disable } = proxy.useDict('sale_channel', 'sale_platform', 'sys_normal_disable');// 渠道,平台,状态字典
const loading = ref(true) // 遮罩层 const loading = ref(true) // 遮罩层
const formRef = ref(null) const formRef = ref(null)
...@@ -225,14 +218,10 @@ const cancel = () => { ...@@ -225,14 +218,10 @@ const cancel = () => {
} }
// 表单重置 // 表单重置
const reset = () => { const reset = () => {
form.value = { resetObjValue(form)
storeId: null, form.channelId = '1'
storeCode: null, form.platformId = '1'
storeName: null, formRef.value.resetFields();
channelId: '1', // 默认渠道:"电商"
platformId: '1' // 默认平台:"天猫"
};
resetForm("form");
} }
/** 搜索按钮操作 */ /** 搜索按钮操作 */
const handleQuery = debounce(function () { const handleQuery = debounce(function () {
...@@ -241,14 +230,14 @@ const handleQuery = debounce(function () { ...@@ -241,14 +230,14 @@ const handleQuery = debounce(function () {
}) })
/** 新增按钮操作 */ /** 新增按钮操作 */
const handleAdd = () => { const handleAdd = () => {
form.value.storeId && reset(); form.storeId && reset();
open.value = true; open.value = true;
title.value = "添加-电商店铺"; title.value = "添加-电商店铺";
} }
/** 修改按钮操作 */ /** 修改按钮操作 */
const handleUpdate = (row) => { const handleUpdate = (row) => {
reset(); reset();
form.value = { ...row }; form = { ...row };
open.value = true open.value = true
title.value = "修改-电商店铺" title.value = "修改-电商店铺"
} }
...@@ -256,8 +245,8 @@ const handleUpdate = (row) => { ...@@ -256,8 +245,8 @@ const handleUpdate = (row) => {
const submitForm = () => { const submitForm = () => {
formRef.value.validate(valid => { formRef.value.validate(valid => {
if (valid) { if (valid) {
if (form.value.storeId != null) { if (form.storeId != null) {
updateStore(form.value).then(response => { updateStore(form).then(response => {
proxy.$modal.msgSuccess("修改成功"); proxy.$modal.msgSuccess("修改成功");
open.value = false; open.value = false;
getList(); getList();
...@@ -265,9 +254,9 @@ const submitForm = () => { ...@@ -265,9 +254,9 @@ const submitForm = () => {
}); });
} else { } else {
// 携带平台和渠道中文字符 // 携带平台和渠道中文字符
form.value.channel = sale_channel.find(item => item.value === this.form.channelId).label form.channel = sale_channel.value.find(item => item.value === form.channelId).label
form.value.platform = sale_platform.find(item => item.value === this.form.platformId).label form.platform = sale_platform.value.find(item => item.value === form.platformId).label
addStore(form.value).then(response => { addStore(form).then(response => {
proxy.$modal.msgSuccess("新增成功"); proxy.$modal.msgSuccess("新增成功");
open.value = false; open.value = false;
getList(); getList();
...@@ -299,9 +288,15 @@ getList() ...@@ -299,9 +288,15 @@ getList()
</script> </script>
<style scoped <style scoped
lang="scss"> lang="scss">
.el-radio-group { .content {
.el-radio { background-color: var(--el-bg-color-overlay);
margin-bottom: 10px; width: 100%;
.el-radio-group {
.el-radio {
margin-bottom: 10px;
}
} }
} }
</style> </style>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论