202505301629
This commit is contained in:
parent
7624d92bc6
commit
8d4e1b50cd
|
|
@ -138,45 +138,31 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 添加或修改广告配置对话框 -->
|
<!-- 添加或修改广告配置对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
<el-form-item label="名称" prop="title">
|
<el-form-item label="标题" prop="title" required>
|
||||||
<el-input v-model="form.title" placeholder="请输入名称" />
|
<el-input v-model="form.title" placeholder="请输入标题" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="位置" prop="type">
|
<el-form-item label="位置" prop="type" required>
|
||||||
<el-select v-model="form.type" placeholder="请选择位置">
|
<el-radio-group v-model="form.type">
|
||||||
<el-option
|
<el-radio :label="0">首页团队</el-radio>
|
||||||
v-for="dict in dict.type.adv_img_type"
|
<el-radio :label="1">首页宣传</el-radio>
|
||||||
:key="dict.value"
|
<el-radio :label="2">积分商城</el-radio>
|
||||||
:label="dict.label"
|
</el-radio-group>
|
||||||
:value="parseInt(dict.value)"
|
|
||||||
></el-option>
|
|
||||||
</el-select>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="图片" prop="image">
|
<el-form-item label="图片" prop="image" required>
|
||||||
<image-upload v-model="form.image"/>
|
<div style="width:100%">
|
||||||
|
<image-upload v-model="form.image" :limit="1" :isShowTip="false" style="width:100%"/>
|
||||||
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="链接" prop="link">
|
<el-form-item label="链接" prop="link">
|
||||||
<el-input v-model="form.link" placeholder="请输入链接" />
|
<el-input v-model="form.link" placeholder="请输入链接" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="排序" prop="sort">
|
<el-form-item label="排序" prop="sort" required>
|
||||||
<el-input v-model="form.sort" placeholder="请输入排序" />
|
<el-input-number v-model="form.sort" :min="1" :max="9999" :step="1" controls-position="both" style="width:120px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="${comment}" prop="createdAt">
|
<el-form-item label="状态" prop="status" required>
|
||||||
<el-date-picker clearable
|
<el-switch v-model="form.status" :active-value="1" :inactive-value="0" />
|
||||||
v-model="form.createdAt"
|
|
||||||
type="date"
|
|
||||||
value-format="yyyy-MM-dd"
|
|
||||||
placeholder="请选择${comment}">
|
|
||||||
</el-date-picker>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="${comment}" prop="updatedAt">
|
|
||||||
<el-date-picker clearable
|
|
||||||
v-model="form.updatedAt"
|
|
||||||
type="date"
|
|
||||||
value-format="yyyy-MM-dd"
|
|
||||||
placeholder="请选择${comment}">
|
|
||||||
</el-date-picker>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
|
|
@ -225,21 +211,32 @@ export default {
|
||||||
status: null,
|
status: null,
|
||||||
},
|
},
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {
|
||||||
|
id: null,
|
||||||
|
title: null,
|
||||||
|
type: null,
|
||||||
|
image: null,
|
||||||
|
link: null,
|
||||||
|
sort: 10,
|
||||||
|
status: 1
|
||||||
|
},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
title: [
|
title: [
|
||||||
{ required: true, message: "名称不能为空", trigger: "blur" }
|
{ required: true, message: "标题不能为空", trigger: "blur" }
|
||||||
],
|
],
|
||||||
type: [
|
type: [
|
||||||
{ required: true, message: "位置不能为空", trigger: "change" }
|
{ required: true, message: "位置不能为空", trigger: "change" }
|
||||||
],
|
],
|
||||||
|
image: [
|
||||||
|
{ required: true, message: "图片不能为空", trigger: "change" }
|
||||||
|
],
|
||||||
sort: [
|
sort: [
|
||||||
{ required: true, message: "排序不能为空", trigger: "blur" }
|
{ required: true, message: "排序不能为空", trigger: "change" }
|
||||||
],
|
],
|
||||||
status: [
|
status: [
|
||||||
{ required: true, message: "状态不能为空", trigger: "change" }
|
{ required: true, message: "状态不能为空", trigger: "change" }
|
||||||
],
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -269,10 +266,8 @@ export default {
|
||||||
type: null,
|
type: null,
|
||||||
image: null,
|
image: null,
|
||||||
link: null,
|
link: null,
|
||||||
sort: null,
|
sort: 10,
|
||||||
status: null,
|
status: 1
|
||||||
createdAt: null,
|
|
||||||
updatedAt: null
|
|
||||||
}
|
}
|
||||||
this.resetForm("form")
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -56,16 +56,6 @@
|
||||||
v-hasPermi="['system:Area:remove']"
|
v-hasPermi="['system:Area:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:Area:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -87,16 +87,6 @@
|
||||||
v-hasPermi="['system:Cooperate:remove']"
|
v-hasPermi="['system:Cooperate:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:Cooperate:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -177,6 +177,7 @@
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
|
|
||||||
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,10 +10,33 @@
|
||||||
ref="tree"
|
ref="tree"
|
||||||
:data="treeDataList"
|
:data="treeDataList"
|
||||||
node-key="id"
|
node-key="id"
|
||||||
|
:expand-on-click-node="false"
|
||||||
:default-expanded-keys="expandedKeys"
|
:default-expanded-keys="expandedKeys"
|
||||||
:default-expand-all="true">
|
:default-expand-all="false"
|
||||||
<template #default="{ data }">
|
@node-click="handleNodeClick">
|
||||||
<span>{{ data.id }} - {{ data.label }}</span>
|
<template #default="{ node, data }">
|
||||||
|
<div class="custom-tree-node">
|
||||||
|
<span class="node-label" @click.stop="toggleNode(node, data)">
|
||||||
|
<i :class="node.expanded ? 'el-icon-caret-bottom' : 'el-icon-caret-right'" v-if="hasChildren(data)"></i>
|
||||||
|
{{ data.id }} - {{ data.label }}
|
||||||
|
</span>
|
||||||
|
<span class="node-actions">
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click.stop="handleUpdate(data)"
|
||||||
|
v-hasPermi="['system:DiyCity:edit']"
|
||||||
|
>修改</el-button>
|
||||||
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="mini"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click.stop="handleDelete(data)"
|
||||||
|
v-hasPermi="['system:DiyCity:remove']"
|
||||||
|
>删除</el-button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
</el-tree>
|
</el-tree>
|
||||||
|
|
||||||
|
|
@ -55,9 +78,7 @@
|
||||||
<div class="dialog-footer custom-footer">
|
<div class="dialog-footer custom-footer">
|
||||||
<el-button @click="resetForm">重置</el-button>
|
<el-button @click="resetForm">重置</el-button>
|
||||||
<div class="footer-right">
|
<div class="footer-right">
|
||||||
<el-checkbox v-model="continueEdit">继续编辑</el-checkbox>
|
|
||||||
<el-checkbox v-model="continueCreate">继续创建</el-checkbox>
|
|
||||||
<el-checkbox v-model="viewAfter">查看</el-checkbox>
|
|
||||||
<el-button type="primary" @click="submitForm">提交</el-button>
|
<el-button type="primary" @click="submitForm">提交</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -131,6 +152,10 @@ export default {
|
||||||
amap: null,
|
amap: null,
|
||||||
marker: null,
|
marker: null,
|
||||||
geocoder: null,
|
geocoder: null,
|
||||||
|
defaultProps: {
|
||||||
|
children: 'children',
|
||||||
|
label: 'label'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
|
@ -184,7 +209,7 @@ export default {
|
||||||
gettreeDataList(){
|
gettreeDataList(){
|
||||||
getTreeDataList().then(response => {
|
getTreeDataList().then(response => {
|
||||||
this.treeDataList=response.data
|
this.treeDataList=response.data
|
||||||
// 默认全部收起
|
// 初始化时不展开任何节点
|
||||||
this.expandedKeys = []
|
this.expandedKeys = []
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
@ -257,22 +282,102 @@ export default {
|
||||||
...this.queryParams
|
...this.queryParams
|
||||||
}, `DiyCity_${new Date().getTime()}.xlsx`)
|
}, `DiyCity_${new Date().getTime()}.xlsx`)
|
||||||
},
|
},
|
||||||
|
/** 判断节点是否有子节点 */
|
||||||
|
hasChildren(data) {
|
||||||
|
return data.children && data.children.length > 0
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 切换节点展开/收起状态 */
|
||||||
|
toggleNode(node, data) {
|
||||||
|
if (this.hasChildren(data)) {
|
||||||
|
if (node.expanded) {
|
||||||
|
// 使用 store 直接设置节点状态
|
||||||
|
node.expanded = false;
|
||||||
|
} else {
|
||||||
|
node.expanded = true;
|
||||||
|
}
|
||||||
|
// 强制更新视图
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$forceUpdate();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 展开所有节点 */
|
||||||
expandAll() {
|
expandAll() {
|
||||||
// 展开所有一级节点
|
if (this.$refs.tree && this.$refs.tree.store) {
|
||||||
this.expandedKeys = this.treeDataList.map(item => item.id)
|
const store = this.$refs.tree.store;
|
||||||
|
|
||||||
|
// 递归处理所有节点
|
||||||
|
const processNode = (node) => {
|
||||||
|
if (node) {
|
||||||
|
// 将节点状态设置为展开
|
||||||
|
node.expanded = true;
|
||||||
|
// 递归处理子节点
|
||||||
|
if (node.childNodes && node.childNodes.length) {
|
||||||
|
node.childNodes.forEach(child => processNode(child));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 处理所有根节点
|
||||||
|
store.root.childNodes.forEach(node => processNode(node));
|
||||||
|
|
||||||
|
// 强制更新视图
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$forceUpdate();
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/** 收起所有节点 */
|
||||||
collapseAll() {
|
collapseAll() {
|
||||||
this.expandedKeys = []
|
// 清空展开状态
|
||||||
|
this.expandedKeys = [];
|
||||||
|
|
||||||
|
// 使用 store 直接操作节点状态
|
||||||
|
if (this.$refs.tree && this.$refs.tree.store) {
|
||||||
|
const store = this.$refs.tree.store;
|
||||||
|
|
||||||
|
// 递归处理所有节点
|
||||||
|
const processNode = (node) => {
|
||||||
|
if (node) {
|
||||||
|
// 将节点状态设置为收起
|
||||||
|
if (node.expanded) {
|
||||||
|
node.expanded = false;
|
||||||
|
}
|
||||||
|
// 递归处理子节点
|
||||||
|
if (node.childNodes && node.childNodes.length) {
|
||||||
|
node.childNodes.forEach(child => processNode(child));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// 处理所有根节点
|
||||||
|
store.root.childNodes.forEach(node => processNode(node));
|
||||||
|
|
||||||
|
// 清空展开状态记录
|
||||||
|
store._expandedKeys = {};
|
||||||
|
store.defaultExpandAll = false;
|
||||||
|
|
||||||
|
// 强制更新视图
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.$forceUpdate();
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/** 刷新树 */
|
||||||
refreshTree() {
|
refreshTree() {
|
||||||
this.gettreeDataList();
|
this.expandedKeys = []; // 清空展开状态
|
||||||
},
|
if (this.$refs.tree && this.$refs.tree.store) {
|
||||||
loadParentOptions() {
|
const store = this.$refs.tree.store;
|
||||||
// 这里假设用listDiyCity获取所有可选父级
|
store._expandedKeys = {}; // 清空内部展开状态
|
||||||
listDiyCity({parentId:0}).then(res => {
|
store.defaultExpandAll = false;
|
||||||
this.parentOptions = res.rows || []
|
}
|
||||||
})
|
this.gettreeDataList(); // 重新获取数据
|
||||||
},
|
},
|
||||||
|
|
||||||
decreaseOrder() {
|
decreaseOrder() {
|
||||||
if (this.form.order > 0) {
|
if (this.form.order > 0) {
|
||||||
this.form.order--
|
this.form.order--
|
||||||
|
|
@ -283,78 +388,84 @@ export default {
|
||||||
},
|
},
|
||||||
resetForm() {
|
resetForm() {
|
||||||
if (this.$refs.form) {
|
if (this.$refs.form) {
|
||||||
this.$refs.form.resetFields();
|
this.$refs.form.resetFields()
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
initMap() {
|
initMap() {
|
||||||
// 销毁旧地图和事件,防止重复绑定
|
// 销毁旧地图和事件,防止重复绑定
|
||||||
if (this.map) {
|
if (this.map) {
|
||||||
this.map.destroy();
|
this.map.destroy()
|
||||||
this.map = null;
|
this.map = null
|
||||||
this.marker = null;
|
this.marker = null
|
||||||
this.geocoder = null;
|
this.geocoder = null
|
||||||
this.mapInited = false;
|
this.mapInited = false
|
||||||
}
|
}
|
||||||
this.map = new AMap.Map('map', {
|
this.map = new AMap.Map('map', {
|
||||||
zoom: 16,
|
zoom: 16,
|
||||||
center: [this.form.longitude || 108.94141, this.form.latitude || 34.209883],
|
center: [this.form.longitude || 108.94141, this.form.latitude || 34.209883],
|
||||||
});
|
})
|
||||||
this.geocoder = new AMap.Geocoder();
|
this.geocoder = new AMap.Geocoder()
|
||||||
// if (this.form.longitude && this.form.latitude) {
|
// if (this.form.longitude && this.form.latitude) {
|
||||||
// this.setMapMarker([this.form.longitude, this.form.latitude]);
|
// this.setMapMarker([this.form.longitude, this.form.latitude]);
|
||||||
// this.map.setCenter([this.form.longitude, this.form.latitude]);
|
// this.map.setCenter([this.form.longitude, this.form.latitude]);
|
||||||
// }
|
// }
|
||||||
this.map.on('click', (e) => {
|
this.map.on('click', (e) => {
|
||||||
const lnglat = [e.lnglat.lng, e.lnglat.lat];
|
const lnglat = [e.lnglat.lng, e.lnglat.lat]
|
||||||
this.setMapMarker(lnglat);
|
this.setMapMarker(lnglat)
|
||||||
this.form.longitude = e.lnglat.lng;
|
this.form.longitude = e.lnglat.lng
|
||||||
this.form.latitude = e.lnglat.lat;
|
this.form.latitude = e.lnglat.lat
|
||||||
this.latlng = `${e.lnglat.lng},${e.lnglat.lat}`;
|
this.latlng = `${e.lnglat.lng},${e.lnglat.lat}`
|
||||||
this.geocoder.getAddress(lnglat, (status, result) => {
|
this.geocoder.getAddress(lnglat, (status, result) => {
|
||||||
// if (status === 'complete' && result.regeocode) {
|
// if (status === 'complete' && result.regeocode) {
|
||||||
// this.form.info = result.regeocode.formattedAddress;
|
// this.form.info = result.regeocode.formattedAddress;
|
||||||
// }
|
// }
|
||||||
});
|
})
|
||||||
});
|
})
|
||||||
this.mapInited = true;
|
this.mapInited = true
|
||||||
},
|
},
|
||||||
setMapMarker(lnglat) {
|
setMapMarker(lnglat) {
|
||||||
if (this.marker) {
|
if (this.marker) {
|
||||||
this.marker.setMap(null);
|
this.marker.setMap(null)
|
||||||
}
|
}
|
||||||
this.marker = new AMap.Marker({
|
this.marker = new AMap.Marker({
|
||||||
position: lnglat,
|
position: lnglat,
|
||||||
map: this.map,
|
map: this.map,
|
||||||
});
|
})
|
||||||
},
|
},
|
||||||
searchMapAddress() {
|
searchMapAddress() {
|
||||||
if (!this.searchAddress) {
|
if (!this.searchAddress) {
|
||||||
this.$message.warning('请输入要搜索的地址');
|
this.$message.warning('请输入要搜索的地址')
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
if (!this.mapInited || !this.geocoder) {
|
if (!this.mapInited || !this.geocoder) {
|
||||||
this.$message.warning('地图未初始化,请稍后再试');
|
this.$message.warning('地图未初始化,请稍后再试')
|
||||||
return;
|
return
|
||||||
}
|
}
|
||||||
this.geocoder.getLocation(this.searchAddress, (status, result) => {
|
this.geocoder.getLocation(this.searchAddress, (status, result) => {
|
||||||
if (status === 'complete' && result.geocodes.length) {
|
if (status === 'complete' && result.geocodes.length) {
|
||||||
const lnglat = result.geocodes[0].location;
|
const lnglat = result.geocodes[0].location
|
||||||
this.setMapMarker([lnglat.lng, lnglat.lat]);
|
this.setMapMarker([lnglat.lng, lnglat.lat])
|
||||||
this.map.setCenter([lnglat.lng, lnglat.lat]);
|
this.map.setCenter([lnglat.lng, lnglat.lat])
|
||||||
this.form.longitude = lnglat.lng;
|
this.form.longitude = lnglat.lng
|
||||||
this.form.latitude = lnglat.lat;
|
this.form.latitude = lnglat.lat
|
||||||
this.latlng = `${lnglat.lng},${lnglat.lat}`;
|
this.latlng = `${lnglat.lng},${lnglat.lat}`
|
||||||
// this.form.info = result.geocodes[0].formattedAddress;
|
// this.form.info = result.geocodes[0].formattedAddress;
|
||||||
if ('addressName' in this.form) {
|
if ('addressName' in this.form) {
|
||||||
this.form.addressName = result.geocodes[0].formattedAddress;
|
this.form.addressName = result.geocodes[0].formattedAddress
|
||||||
}
|
}
|
||||||
if ('addressInfo' in this.form) {
|
if ('addressInfo' in this.form) {
|
||||||
this.form.addressInfo = result.geocodes[0].formattedAddress;
|
this.form.addressInfo = result.geocodes[0].formattedAddress
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.$message.warning('未找到该地址,请输入更详细的地址');
|
this.$message.warning('未找到该地址,请输入更详细的地址')
|
||||||
}
|
}
|
||||||
});
|
})
|
||||||
|
},
|
||||||
|
loadParentOptions() {
|
||||||
|
// 这里假设用listDiyCity获取所有可选父级
|
||||||
|
listDiyCity({parentId:0}).then(res => {
|
||||||
|
this.parentOptions = res.rows || []
|
||||||
|
})
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -390,4 +501,44 @@ export default {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
gap: 12px;
|
gap: 12px;
|
||||||
}
|
}
|
||||||
|
.custom-tree-node {
|
||||||
|
flex: 1;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
font-size: 14px;
|
||||||
|
padding-right: 8px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
.node-label {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.node-label i {
|
||||||
|
margin-right: 4px;
|
||||||
|
font-size: 16px;
|
||||||
|
transition: transform 0.3s ease;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.node-label i.el-icon-caret-bottom {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
.node-label i.el-icon-caret-right {
|
||||||
|
transform: rotate(0deg);
|
||||||
|
}
|
||||||
|
.node-actions {
|
||||||
|
display: none;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
.custom-tree-node:hover .node-actions {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
.node-actions .el-button {
|
||||||
|
padding: 2px 5px;
|
||||||
|
margin-left: 8px;
|
||||||
|
}
|
||||||
|
.node-actions .el-button [class^="el-icon-"] {
|
||||||
|
margin-right: 3px;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -117,16 +117,7 @@
|
||||||
v-hasPermi="['system:GoodsOrder:remove']"
|
v-hasPermi="['system:GoodsOrder:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:GoodsOrder:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -88,16 +88,6 @@
|
||||||
v-hasPermi="['system:GoodsOrderCursor:remove']"
|
v-hasPermi="['system:GoodsOrderCursor:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:GoodsOrderCursor:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -95,16 +95,7 @@
|
||||||
v-hasPermi="['system:ServiceGoods:remove']"
|
v-hasPermi="['system:ServiceGoods:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:ServiceGoods:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,16 +49,7 @@
|
||||||
v-hasPermi="['system:IntegralCate:remove']"
|
v-hasPermi="['system:IntegralCate:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:IntegralCate:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -69,16 +69,6 @@
|
||||||
v-hasPermi="['system:IntegralLog:remove']"
|
v-hasPermi="['system:IntegralLog:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:IntegralLog:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -147,17 +147,7 @@
|
||||||
>删除</el-button
|
>删除</el-button
|
||||||
>
|
>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:IntegralProduct:export']"
|
|
||||||
>导出</el-button
|
|
||||||
>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar
|
<right-toolbar
|
||||||
:showSearch.sync="showSearch"
|
:showSearch.sync="showSearch"
|
||||||
@queryTable="getList"
|
@queryTable="getList"
|
||||||
|
|
|
||||||
|
|
@ -138,16 +138,6 @@
|
||||||
v-hasPermi="['system:NotifyOrder:remove']"
|
v-hasPermi="['system:NotifyOrder:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:NotifyOrder:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -163,16 +163,7 @@
|
||||||
v-hasPermi="['system:Order:remove']"
|
v-hasPermi="['system:Order:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:Order:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -88,16 +88,6 @@
|
||||||
v-hasPermi="['system:OrderCall:remove']"
|
v-hasPermi="['system:OrderCall:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:OrderCall:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -232,16 +232,6 @@
|
||||||
v-hasPermi="['system:OrderLog:remove']"
|
v-hasPermi="['system:OrderLog:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:OrderLog:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -286,12 +286,6 @@ export default {
|
||||||
this.$modal.msgSuccess("删除成功")
|
this.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => {})
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
|
||||||
handleExport() {
|
|
||||||
this.download('system/OrderSound/export', {
|
|
||||||
...this.queryParams
|
|
||||||
}, `OrderSound_${new Date().getTime()}.xlsx`)
|
|
||||||
},
|
|
||||||
startAudio(row) {
|
startAudio(row) {
|
||||||
if (this.audioPlayer) {
|
if (this.audioPlayer) {
|
||||||
this.audioPlayer.pause();
|
this.audioPlayer.pause();
|
||||||
|
|
|
||||||
|
|
@ -63,16 +63,7 @@
|
||||||
v-hasPermi="['system:QuoteCraft:remove']"
|
v-hasPermi="['system:QuoteCraft:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:QuoteCraft:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -92,16 +92,6 @@
|
||||||
v-hasPermi="['system:QuoteMaterial:remove']"
|
v-hasPermi="['system:QuoteMaterial:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:QuoteMaterial:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,16 +71,6 @@
|
||||||
v-hasPermi="['system:QuoteMaterialType:remove']"
|
v-hasPermi="['system:QuoteMaterialType:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:QuoteMaterialType:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -69,16 +69,6 @@
|
||||||
v-hasPermi="['system:QuoteType:remove']"
|
v-hasPermi="['system:QuoteType:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:QuoteType:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,16 +51,7 @@
|
||||||
v-hasPermi="['system:ServiceCate:remove']"
|
v-hasPermi="['system:ServiceCate:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:ServiceCate:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -95,16 +95,7 @@
|
||||||
v-hasPermi="['system:ServiceGoods:remove']"
|
v-hasPermi="['system:ServiceGoods:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:ServiceGoods:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -126,32 +126,19 @@
|
||||||
@pagination="getList"
|
@pagination="getList"
|
||||||
/>
|
/>
|
||||||
<!-- 添加或修改快递公司对话框 -->
|
<!-- 添加或修改快递公司对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
<el-form-item label="名称" prop="title">
|
<el-form-item label="名称" prop="title" required>
|
||||||
<el-input v-model="form.title" placeholder="请输入名称" />
|
<el-input v-model="form.title" placeholder="输入名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="编号" prop="code">
|
<el-form-item label="编码" prop="code">
|
||||||
<el-input v-model="form.code" placeholder="请输入编号" />
|
<el-input v-model="form.code" placeholder="输入编码" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="排序" prop="sort">
|
<el-form-item label="排序" prop="sort" required>
|
||||||
<el-input v-model="form.sort" placeholder="请输入排序" />
|
<el-input-number v-model="form.sort" :min="1" :max="9999" :step="1" controls-position="both" style="width:120px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="${comment}" prop="createdAt">
|
<el-form-item label="状态" prop="status" required>
|
||||||
<el-date-picker clearable
|
<el-switch v-model="form.status" :active-value="1" :inactive-value="0" />
|
||||||
v-model="form.createdAt"
|
|
||||||
type="date"
|
|
||||||
value-format="yyyy-MM-dd"
|
|
||||||
placeholder="请选择${comment}">
|
|
||||||
</el-date-picker>
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="${comment}" prop="updatedAt">
|
|
||||||
<el-date-picker clearable
|
|
||||||
v-model="form.updatedAt"
|
|
||||||
type="date"
|
|
||||||
value-format="yyyy-MM-dd"
|
|
||||||
placeholder="请选择${comment}">
|
|
||||||
</el-date-picker>
|
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
|
|
@ -199,21 +186,24 @@ export default {
|
||||||
updatedAt: null
|
updatedAt: null
|
||||||
},
|
},
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {
|
||||||
|
id: null,
|
||||||
|
title: null,
|
||||||
|
code: null,
|
||||||
|
sort: 5,
|
||||||
|
status: 1
|
||||||
|
},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
title: [
|
title: [
|
||||||
{ required: true, message: "名称不能为空", trigger: "blur" }
|
{ required: true, message: "名称不能为空", trigger: "blur" }
|
||||||
],
|
],
|
||||||
code: [
|
|
||||||
{ required: true, message: "编号不能为空", trigger: "blur" }
|
|
||||||
],
|
|
||||||
sort: [
|
sort: [
|
||||||
{ required: true, message: "排序不能为空", trigger: "blur" }
|
{ required: true, message: "排序不能为空", trigger: "change" }
|
||||||
],
|
],
|
||||||
status: [
|
status: [
|
||||||
{ required: true, message: "状态不能为空", trigger: "change" }
|
{ required: true, message: "状态不能为空", trigger: "change" }
|
||||||
],
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -241,10 +231,8 @@ export default {
|
||||||
id: null,
|
id: null,
|
||||||
title: null,
|
title: null,
|
||||||
code: null,
|
code: null,
|
||||||
sort: null,
|
sort: 5,
|
||||||
status: null,
|
status: 1
|
||||||
createdAt: null,
|
|
||||||
updatedAt: null
|
|
||||||
}
|
}
|
||||||
this.resetForm("form")
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -80,16 +80,7 @@
|
||||||
v-hasPermi="['system:UserAddress:remove']"
|
v-hasPermi="['system:UserAddress:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:UserAddress:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -160,16 +160,6 @@
|
||||||
v-hasPermi="['system:users:remove']"
|
v-hasPermi="['system:users:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:users:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -109,59 +109,62 @@
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<!-- 添加或修改师傅等级配置对话框 -->
|
<!-- 添加或修改师傅等级配置对话框 -->
|
||||||
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
<el-dialog :title="title" :visible.sync="open" width="850px" append-to-body>
|
||||||
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||||
<el-form-item label="等级名称" prop="title">
|
<el-row :gutter="15">
|
||||||
<el-input v-model="form.title" placeholder="请输入等级名称" />
|
<el-col :span="13">
|
||||||
</el-form-item>
|
<el-form-item label="等级名称" prop="title" required>
|
||||||
<el-form-item label="等级" prop="level">
|
<el-input v-model="form.title" placeholder="输入等级名称" />
|
||||||
<el-input v-model="form.level" placeholder="请输入等级" />
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item label="等级" prop="level" required>
|
||||||
<el-form-item label="达成率" prop="ar">
|
<div class="input-with-select">
|
||||||
<el-input v-model="form.ar" placeholder="请输入达成率" />
|
<el-input-number v-model="form.level" :min="0" :max="9999" :step="1" controls-position="right" style="width:160px" />
|
||||||
</el-form-item>
|
</div>
|
||||||
<el-form-item label="服务总额" prop="totalPrice">
|
</el-form-item>
|
||||||
<el-input v-model="form.totalPrice" placeholder="请输入服务总额" />
|
<el-form-item label="达成率" prop="ar" required>
|
||||||
</el-form-item>
|
<div class="input-with-select">
|
||||||
<el-form-item label="佣金比例" prop="cr">
|
<el-input-number v-model="form.ar" :min="0" :max="9999" :step="1" controls-position="right" style="width:160px" />
|
||||||
<el-input v-model="form.cr" placeholder="请输入佣金比例" />
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="等级图标" prop="image">
|
<el-form-item label="服务总额" prop="totalPrice" required>
|
||||||
<image-upload v-model="form.image"/>
|
<div class="input-with-select">
|
||||||
</el-form-item>
|
<el-input-number v-model="form.totalPrice" :min="0" :max="9999" :step="1" controls-position="right" style="width:160px" />
|
||||||
<el-form-item label="背景图" prop="bgImage">
|
</div>
|
||||||
<image-upload v-model="form.bgImage"/>
|
</el-form-item>
|
||||||
</el-form-item>
|
<el-form-item label="佣金比例" prop="cr" required>
|
||||||
<el-form-item label="色值" prop="color">
|
<div class="input-with-select">
|
||||||
<el-input v-model="form.color" placeholder="请输入色值" />
|
<el-input-number v-model="form.cr" :min="0" :max="9999" :step="1" controls-position="right" style="width:160px" />
|
||||||
</el-form-item>
|
</div>
|
||||||
<el-form-item label="用户背景图" prop="userBgimg">
|
</el-form-item>
|
||||||
<el-input v-model="form.userBgimg" placeholder="请输入用户背景图" />
|
<el-form-item label="用户名称色值" prop="color">
|
||||||
</el-form-item>
|
<el-color-picker
|
||||||
<el-form-item label="${comment}" prop="createdAt">
|
v-model="form.color"
|
||||||
<el-date-picker clearable
|
show-alpha
|
||||||
v-model="form.createdAt"
|
:predefine="['#ff4500','#ff8c00','#ffd700','#90ee90','#00ced1','#1e90ff','#c71585']"
|
||||||
type="date"
|
/>
|
||||||
value-format="yyyy-MM-dd"
|
</el-form-item>
|
||||||
placeholder="请选择${comment}">
|
</el-col>
|
||||||
</el-date-picker>
|
<el-col :span="11">
|
||||||
</el-form-item>
|
<el-form-item label="等级图标" prop="image" required>
|
||||||
<el-form-item label="${comment}" prop="updatedAt">
|
<div class="upload-box">
|
||||||
<el-date-picker clearable
|
<image-upload v-model="form.image" :limit="1" :isShowTip="false"/>
|
||||||
v-model="form.updatedAt"
|
<div class="upload-tip">或将文件拖到这里</div>
|
||||||
type="date"
|
</div>
|
||||||
value-format="yyyy-MM-dd"
|
</el-form-item>
|
||||||
placeholder="请选择${comment}">
|
<el-form-item label="背景图" prop="bgImage" required>
|
||||||
</el-date-picker>
|
<div class="upload-box">
|
||||||
</el-form-item>
|
<image-upload v-model="form.bgImage" :limit="1" :isShowTip="false"/>
|
||||||
<el-form-item label="${comment}" prop="deletedAt">
|
<div class="upload-tip">或将文件拖到这里</div>
|
||||||
<el-date-picker clearable
|
</div>
|
||||||
v-model="form.deletedAt"
|
</el-form-item>
|
||||||
type="date"
|
<el-form-item label="用户背景图" prop="userBgimg" required>
|
||||||
value-format="yyyy-MM-dd"
|
<div class="upload-box">
|
||||||
placeholder="请选择${comment}">
|
<image-upload v-model="form.userBgimg" :limit="1" :isShowTip="false"/>
|
||||||
</el-date-picker>
|
<div class="upload-tip">或将文件拖到这里</div>
|
||||||
</el-form-item>
|
</div>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
</el-form>
|
</el-form>
|
||||||
<div slot="footer" class="dialog-footer">
|
<div slot="footer" class="dialog-footer">
|
||||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
|
@ -214,24 +217,44 @@ export default {
|
||||||
deletedAt: null
|
deletedAt: null
|
||||||
},
|
},
|
||||||
// 表单参数
|
// 表单参数
|
||||||
form: {},
|
form: {
|
||||||
|
id: null,
|
||||||
|
title: null,
|
||||||
|
level: 0,
|
||||||
|
ar: 0,
|
||||||
|
totalPrice: 0,
|
||||||
|
cr: 0,
|
||||||
|
color: '#000000',
|
||||||
|
image: null,
|
||||||
|
bgImage: null,
|
||||||
|
userBgimg: null
|
||||||
|
},
|
||||||
// 表单校验
|
// 表单校验
|
||||||
rules: {
|
rules: {
|
||||||
title: [
|
title: [
|
||||||
{ required: true, message: "等级名称不能为空", trigger: "blur" }
|
{ required: true, message: "等级名称不能为空", trigger: "blur" }
|
||||||
],
|
],
|
||||||
level: [
|
level: [
|
||||||
{ required: true, message: "等级不能为空", trigger: "blur" }
|
{ required: true, message: "等级不能为空", trigger: "change" }
|
||||||
],
|
],
|
||||||
ar: [
|
ar: [
|
||||||
{ required: true, message: "达成率不能为空", trigger: "blur" }
|
{ required: true, message: "达成率不能为空", trigger: "change" }
|
||||||
],
|
],
|
||||||
totalPrice: [
|
totalPrice: [
|
||||||
{ required: true, message: "服务总额不能为空", trigger: "blur" }
|
{ required: true, message: "服务总额不能为空", trigger: "change" }
|
||||||
],
|
],
|
||||||
cr: [
|
cr: [
|
||||||
{ required: true, message: "佣金比例不能为空", trigger: "blur" }
|
{ required: true, message: "佣金比例不能为空", trigger: "change" }
|
||||||
],
|
],
|
||||||
|
image: [
|
||||||
|
{ required: true, message: "等级图标不能为空", trigger: "change" }
|
||||||
|
],
|
||||||
|
bgImage: [
|
||||||
|
{ required: true, message: "背景图不能为空", trigger: "change" }
|
||||||
|
],
|
||||||
|
userBgimg: [
|
||||||
|
{ required: true, message: "用户背景图不能为空", trigger: "change" }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
@ -258,17 +281,14 @@ export default {
|
||||||
this.form = {
|
this.form = {
|
||||||
id: null,
|
id: null,
|
||||||
title: null,
|
title: null,
|
||||||
level: null,
|
level: 0,
|
||||||
ar: null,
|
ar: 0,
|
||||||
totalPrice: null,
|
totalPrice: 0,
|
||||||
cr: null,
|
cr: 0,
|
||||||
|
color: '#000000',
|
||||||
image: null,
|
image: null,
|
||||||
bgImage: null,
|
bgImage: null,
|
||||||
color: null,
|
userBgimg: null
|
||||||
userBgimg: null,
|
|
||||||
createdAt: null,
|
|
||||||
updatedAt: null,
|
|
||||||
deletedAt: null
|
|
||||||
}
|
}
|
||||||
this.resetForm("form")
|
this.resetForm("form")
|
||||||
},
|
},
|
||||||
|
|
@ -343,3 +363,59 @@ export default {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.upload-box {
|
||||||
|
border: 1px dashed #d9d9d9;
|
||||||
|
border-radius: 4px;
|
||||||
|
padding: 8px;
|
||||||
|
text-align: center;
|
||||||
|
background-color: #fafafa;
|
||||||
|
height: 120px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
margin-bottom: 15px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: all 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload-box:hover {
|
||||||
|
border-color: #409EFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.upload-tip {
|
||||||
|
color: #999;
|
||||||
|
font-size: 12px;
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-with-select {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.input-with-select .el-input-number {
|
||||||
|
flex: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.el-form-item {
|
||||||
|
margin-bottom: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-upload--picture-card {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
line-height: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-upload-list--picture-card .el-upload-list__item {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
|
||||||
|
::v-deep .el-upload-list--picture-card {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
|
||||||
|
|
@ -68,16 +68,6 @@
|
||||||
v-hasPermi="['system:dict:remove']"
|
v-hasPermi="['system:dict:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:dict:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button
|
<el-button
|
||||||
type="warning"
|
type="warning"
|
||||||
|
|
|
||||||
|
|
@ -66,16 +66,6 @@
|
||||||
v-hasPermi="['system:post:remove']"
|
v-hasPermi="['system:post:remove']"
|
||||||
>删除</el-button>
|
>删除</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button
|
|
||||||
type="warning"
|
|
||||||
plain
|
|
||||||
icon="el-icon-download"
|
|
||||||
size="mini"
|
|
||||||
@click="handleExport"
|
|
||||||
v-hasPermi="['system:post:export']"
|
|
||||||
>导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -51,9 +51,6 @@
|
||||||
<el-col :span="1.5">
|
<el-col :span="1.5">
|
||||||
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport" v-hasPermi="['system:user:import']">导入</el-button>
|
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport" v-hasPermi="['system:user:import']">导入</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="1.5">
|
|
||||||
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" v-hasPermi="['system:user:export']">导出</el-button>
|
|
||||||
</el-col>
|
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
|
||||||
</el-row>
|
</el-row>
|
||||||
|
|
||||||
|
|
@ -519,12 +516,6 @@ export default {
|
||||||
this.$modal.msgSuccess("删除成功")
|
this.$modal.msgSuccess("删除成功")
|
||||||
}).catch(() => {})
|
}).catch(() => {})
|
||||||
},
|
},
|
||||||
/** 导出按钮操作 */
|
|
||||||
handleExport() {
|
|
||||||
this.download('system/user/export', {
|
|
||||||
...this.queryParams
|
|
||||||
}, `user_${new Date().getTime()}.xlsx`)
|
|
||||||
},
|
|
||||||
/** 导入按钮操作 */
|
/** 导入按钮操作 */
|
||||||
handleImport() {
|
handleImport() {
|
||||||
this.upload.title = "用户导入"
|
this.upload.title = "用户导入"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue