mirror of
https://gitee.com/beijing_hongye_huicheng/lilishop-ui.git
synced 2025-12-21 02:15:54 +08:00
383 lines
12 KiB
Vue
383 lines
12 KiB
Vue
<template>
|
||
<div class="search">
|
||
<Card>
|
||
<Row class="operation padding-row">
|
||
<Button @click="add" type="primary">添加</Button>
|
||
</Row>
|
||
<Table :loading="loading" border :columns="columns" :data="data" ref="table">
|
||
<!-- 页面展示 -->
|
||
<template slot="disableSlot" slot-scope="{row}">
|
||
<i-switch size="large" :true-value="true" :false-value="false" :value="row.switch"
|
||
@on-change="changeSwitch(row)">
|
||
<span slot="open">开启</span>
|
||
<span slot="close">禁用</span>
|
||
</i-switch>
|
||
</template>
|
||
</Table>
|
||
<Row type="flex" justify="end" class="mt_10">
|
||
<Page :current="searchForm.pageNumber" :total="total" :page-size="searchForm.pageSize" @on-change="changePage"
|
||
@on-page-size-change="changePageSize" :page-size-opts="[10, 20, 50]" size="small" show-total show-elevator
|
||
show-sizer></Page>
|
||
</Row>
|
||
</Card>
|
||
<Modal :title="modalTitle" v-model="modalVisible" :mask-closable="false" :width="500">
|
||
<Form ref="form" :model="form" :label-width="120" :rules="formValidate">
|
||
<FormItem label="物流公司名称" prop="name">
|
||
<Input v-model="form.name" clearable style="width: 100%" />
|
||
</FormItem>
|
||
<FormItem label="物流公司代码" prop="code">
|
||
<Input v-model="form.code" clearable style="width: 100%" />
|
||
</FormItem>
|
||
<FormItem label="支持电子面单">
|
||
<i-switch v-model="form.standBy" size="large">
|
||
<span slot="open">开</span>
|
||
<span slot="close">关</span>
|
||
</i-switch>
|
||
</FormItem>
|
||
<Card v-if="form.standBy === true" class="modalStyle">
|
||
<h3 style="color: #ff3c2a; margin-bottom: 10px">请输入详细信息</h3>
|
||
<Form ref="formValidate" :label-width="150" label-position="right" :model="faceSheetForm"
|
||
:rules="ruleValidate">
|
||
<FormItem label="customerName" prop="customerName">
|
||
<Input v-model="faceSheetForm.customerName" type="text" class="faceSheetInput"></Input>
|
||
</FormItem>
|
||
<FormItem label="customerPwd" prop="customerPwd">
|
||
<Input v-model="faceSheetForm.customerPwd" type="text" class="faceSheetInput"></Input>
|
||
</FormItem>
|
||
<FormItem label="monthCode" prop="monthCode">
|
||
<Input v-model="faceSheetForm.monthCode" type="text" class="faceSheetInput"></Input>
|
||
</FormItem>
|
||
<FormItem label="sendSite" prop="sendSite">
|
||
<Input v-model="faceSheetForm.sendSite" type="text" class="faceSheetInput"></Input>
|
||
</FormItem>
|
||
<FormItem label="sendStaff" prop="sendStaff">
|
||
<Input v-model="faceSheetForm.sendStaff" type="text" class="faceSheetInput"></Input>
|
||
</FormItem>
|
||
<FormItem label="支付方式" prop="payType">
|
||
<Select v-model="faceSheetForm.payType" class="faceSheetInput">
|
||
<Option value="1">现付</Option>
|
||
<Option value="2">到付</Option>
|
||
<Option value="3">月结</Option>
|
||
<Option value="4">第三方支付(仅SF支持)</Option>
|
||
</Select>
|
||
</FormItem>
|
||
<FormItem label="快递类型" prop="expType">
|
||
<Input v-model="faceSheetForm.expType" type="text" class="faceSheetInput" />
|
||
</FormItem>
|
||
<div style="width:100%;text-align:center;">
|
||
<a style="padding-right: 20px" @click="frontDownload('use')">使用说明</a>
|
||
<a @click="frontDownload('type')">快递类型</a>
|
||
</div>
|
||
</Form>
|
||
</Card>
|
||
<!-- <FormItem label="禁用状态" prop="disabled">
|
||
|
||
<i-switch true-value="OPEN" false-value="CLOSE" v-model="form.disabled" size="large">
|
||
<span slot="open">开启</span>
|
||
<span slot="close">禁用</span>
|
||
</i-switch>
|
||
</FormItem> -->
|
||
</Form>
|
||
<div slot="footer">
|
||
<Button type="text" @click="modalVisible = false">取消</Button>
|
||
<Button type="primary" :loading="submitLoading" @click="handleSubmit">提交
|
||
</Button>
|
||
</div>
|
||
</Modal>
|
||
</div>
|
||
</template>
|
||
|
||
<script>
|
||
import {
|
||
getLogisticsPage,
|
||
updateLogistics,
|
||
addLogistics,
|
||
delLogistics,
|
||
} from "@/api/logistics";
|
||
|
||
export default {
|
||
name: "logistics",
|
||
data() {
|
||
return {
|
||
faceSheetForm: {
|
||
faceSheetFlag: true,
|
||
customerName: "",
|
||
payType: '1',
|
||
expType: '1',
|
||
customerPwd: "",
|
||
monthCode: "",
|
||
sendSite: "",
|
||
sendStaff: "",
|
||
},
|
||
ruleValidate: {
|
||
// customerName: [{ required: true, message: "请填写必填项" ,trigger: "blur" }],
|
||
// payType: [{ required: true, message: "请填写必填项" ,trigger: "change" }],
|
||
// expType: [{ required: true, message: "请填写必填项" ,trigger: "blur" }],
|
||
// customerPwd: [{ required: true, message: "请填写必填项" ,trigger: "blur" }],
|
||
// monthCode: [{ required: true, message: "请填写必填项" ,trigger: "blur" }],
|
||
// sendSite: [{ required: true, message: "请填写必填项" ,trigger: "blur" }],
|
||
// sendStaff: [{ required: true, message: "请填写必填项" ,trigger: "blur" }],
|
||
|
||
},
|
||
openText: false,
|
||
loading: true, // 表单加载状态
|
||
modalVisible: false, // 添加或编辑显示
|
||
modalTitle: "", // 添加或编辑标题
|
||
searchForm: {
|
||
// 搜索框初始化对象
|
||
pageNumber: 1, // 当前页数
|
||
pageSize: 20, // 页面大小
|
||
sort: "createTime", // 默认排序字段
|
||
order: "desc", // 默认排序方式
|
||
name: "",
|
||
},
|
||
form: {
|
||
// 添加或编辑表单对象初始化数据
|
||
name: "",
|
||
disabled: "OPEN"
|
||
},
|
||
// 表单验证规则
|
||
formValidate: {
|
||
name: [
|
||
{
|
||
required: true,
|
||
message: "请输入物流公司名称",
|
||
trigger: "blur",
|
||
},
|
||
],
|
||
code: [
|
||
{
|
||
required: true,
|
||
message: "请输入物流公司代码",
|
||
trigger: "blur",
|
||
},
|
||
],
|
||
},
|
||
submitLoading: false, // 添加或编辑提交状态
|
||
columns: [
|
||
{
|
||
title: "物流公司名称",
|
||
key: "name",
|
||
minWidth: 120,
|
||
sortable: false,
|
||
},
|
||
{
|
||
title: "物流公司编码",
|
||
key: "code",
|
||
minWidth: 120,
|
||
sortable: false,
|
||
},
|
||
|
||
{
|
||
title: "创建时间",
|
||
key: "createTime",
|
||
width: 180,
|
||
sortable: false,
|
||
},
|
||
{
|
||
title: "操作",
|
||
key: "action",
|
||
align: "center",
|
||
width: 150,
|
||
render: (h, params) => {
|
||
return h("div", [
|
||
h(
|
||
"Button",
|
||
{
|
||
props: {
|
||
type: "info",
|
||
size: "small",
|
||
},
|
||
style: {
|
||
marginRight: "5px",
|
||
},
|
||
on: {
|
||
click: () => {
|
||
this.detail(params.row);
|
||
},
|
||
},
|
||
},
|
||
"修改"
|
||
),
|
||
h(
|
||
"Button",
|
||
{
|
||
props: {
|
||
type: "error",
|
||
size: "small",
|
||
},
|
||
style: {
|
||
marginRight: "5px",
|
||
},
|
||
on: {
|
||
click: () => {
|
||
this.remove(params.row);
|
||
},
|
||
},
|
||
},
|
||
"删除"
|
||
),
|
||
]);
|
||
},
|
||
},
|
||
],
|
||
data: [], // 表单数据
|
||
total: 0, // 表单数据总数
|
||
};
|
||
},
|
||
|
||
methods: {
|
||
frontDownload(val) {
|
||
var a = document.createElement("a"); //创建一个<a></a>标签
|
||
//根据点击按钮来下载不同文件
|
||
if (val === 'use') {
|
||
a.href = "static/instructions.xlsx"; // 给a标签的href属性值加上地址,注意,这里是绝对路径,不用加 点.
|
||
a.download = "使用说明.xlsx"; //设置下载文件文件名,这里加上.xlsx指定文件类型,pdf文件就指定.fpd即可
|
||
} else if (val === 'type') {
|
||
a.href = "static/logisticsType.xlsx"; // 给a标签的href属性值加上地址,注意,这里是绝对路径,不用加 点.
|
||
a.download = "快递类型.xlsx"; //设置下载文件文件名,这里加上.xlsx指定文件类型,pdf文件就指定.fpd即可
|
||
}
|
||
a.style.display = "none"; // 障眼法藏起来a标签
|
||
document.body.appendChild(a); // 将a标签追加到文档对象中
|
||
a.click(); // 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
|
||
a.remove(); // 一次性的,用完就删除a标签
|
||
},
|
||
// 初始化
|
||
init() {
|
||
this.getDataList();
|
||
},
|
||
// 分页 改变页码
|
||
changePage(v) {
|
||
this.searchForm.pageNumber = v;
|
||
this.getDataList();
|
||
},
|
||
// 分页 改变页数
|
||
changePageSize(v) {
|
||
this.searchForm.pageSize = v;
|
||
this.getDataList();
|
||
},
|
||
// 获取列表
|
||
getDataList() {
|
||
this.loading = true;
|
||
|
||
getLogisticsPage(this.searchForm).then((res) => {
|
||
this.loading = false;
|
||
if (res.success) {
|
||
const data = res.result.records;
|
||
data.forEach(e => {
|
||
e.switch = e.disabled === 'OPEN' ? true : false;
|
||
e.standBy = e.standBy == 'null' || !e.standBy ? false : true;
|
||
});
|
||
this.data = data;
|
||
console.log(data)
|
||
this.total = res.result.total;
|
||
}
|
||
});
|
||
this.total = this.data.length;
|
||
this.loading = false;
|
||
},
|
||
// switch 切换状态
|
||
changeSwitch(v) {
|
||
this.form.name = v.name;
|
||
this.form.code = v.code;
|
||
this.form.standBy = v.standBy;
|
||
|
||
this.form.disabled = v.disabled === 'CLOSE' ? 'OPEN' : 'CLOSE';
|
||
updateLogistics(v.id, this.form).then((res) => {
|
||
if (res.success) {
|
||
this.$Message.success("操作成功");
|
||
this.getDataList();
|
||
}
|
||
});
|
||
},
|
||
// 确认提交
|
||
handleSubmit() {
|
||
console.log('1', 1)
|
||
this.$refs.form.validate((valid) => {
|
||
console.log(valid)
|
||
if (valid) {
|
||
// this.submitLoading = true;
|
||
console.log(params, 'params', { ...this.form, ...this.faceSheetForm })
|
||
|
||
const params = { ...this.form, ...this.faceSheetForm }
|
||
|
||
console.log(params, 'params')
|
||
if (this.modalTitle == "添加") {
|
||
// 添加 避免编辑后传入id等数据 记得删除
|
||
delete params.id;
|
||
params.disabled = 'OPEN'
|
||
|
||
addLogistics(params).then((res) => {
|
||
this.submitLoading = false;
|
||
if (res.success) {
|
||
this.$Message.success("操作成功");
|
||
this.getDataList();
|
||
this.modalVisible = false;
|
||
}
|
||
});
|
||
} else {
|
||
params.disabled = 'OPEN'
|
||
// 编辑
|
||
updateLogistics(this.id, params).then((res) => {
|
||
this.submitLoading = false;
|
||
if (res.success) {
|
||
this.$Message.success("操作成功");
|
||
this.getDataList();
|
||
this.modalVisible = false;
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
},
|
||
// 添加信息
|
||
add() {
|
||
this.modalTitle = "添加";
|
||
this.form = {};
|
||
this.$refs.form.resetFields();
|
||
this.faceSheetForm = {};
|
||
this.modalVisible = true;
|
||
},
|
||
// 编辑
|
||
detail(v) {
|
||
this.id = v.id;
|
||
this.modalTitle = "修改";
|
||
this.modalVisible = true;
|
||
|
||
this.form.name = v.name;
|
||
this.form.code = v.code;
|
||
this.$set(this.form, 'standBy', v.standBy);
|
||
|
||
|
||
console.log(v)
|
||
|
||
|
||
// this.form.disabled = v.disabled
|
||
this.form.disabled = 'OPEN'
|
||
},
|
||
// 删除物流公司
|
||
remove(v) {
|
||
this.$Modal.confirm({
|
||
title: "确认删除",
|
||
// 记得确认修改此处
|
||
content: "您确认要删除 " + v.name + " ?",
|
||
loading: true,
|
||
onOk: () => {
|
||
// 删除
|
||
delLogistics(v.id).then((res) => {
|
||
this.$Modal.remove();
|
||
if (res.success) {
|
||
this.$Message.success("操作成功");
|
||
this.getDataList();
|
||
}
|
||
});
|
||
},
|
||
});
|
||
},
|
||
},
|
||
mounted() {
|
||
this.init();
|
||
},
|
||
};
|
||
</script>
|