|
@@ -2,30 +2,42 @@ import { ref, reactive, computed, toRefs } from "vue";
|
|
|
import { Table } from "@/hooks/interface";
|
|
|
import { ColumnProps } from "@/components/LjVxeTable/interface";
|
|
|
import { ALLOW_EDIT_STATE } from "@/config/index";
|
|
|
-
|
|
|
+import { SaveDept, DelteDept } from "@/api/modules/saleprice";
|
|
|
+import { ElMessage, ElMessageBox } from "element-plus";
|
|
|
interface defaultState {
|
|
|
/**
|
|
|
* @description 单据当前状态
|
|
|
*/
|
|
|
orderStatus: string;
|
|
|
+ /**
|
|
|
+ * @description 列表Ref
|
|
|
+ */
|
|
|
+ VxeTableRef: any;
|
|
|
+ /**
|
|
|
+ * @description 详情页Ref
|
|
|
+ */
|
|
|
+ LjDetailRef: any;
|
|
|
}
|
|
|
+
|
|
|
+const state = reactive<defaultState>({
|
|
|
+ orderStatus: "",
|
|
|
+ VxeTableRef: null,
|
|
|
+ LjDetailRef: null
|
|
|
+});
|
|
|
/**
|
|
|
* @description 表格多选数据操作
|
|
|
* @param {String} rowKey 当表格可以多选时,所指定的 id
|
|
|
* */
|
|
|
export const useHooks = (t?: any) => {
|
|
|
- const state = reactive<defaultState>({
|
|
|
- orderStatus: ""
|
|
|
- });
|
|
|
-
|
|
|
// 表格配置项
|
|
|
const columns: ColumnProps<any>[] = [
|
|
|
- { type: "seq", title: "#", fixed: "left", width: 80 },
|
|
|
+ { type: "checkbox", width: 80, fixed: "left" },
|
|
|
{
|
|
|
field: "deptname",
|
|
|
title: "部门名称",
|
|
|
basicinfo: {
|
|
|
el: "input",
|
|
|
+ span: 2,
|
|
|
editable: ALLOW_EDIT_STATE,
|
|
|
rules: [{ required: true }]
|
|
|
}
|
|
@@ -35,19 +47,34 @@ export const useHooks = (t?: any) => {
|
|
|
title: "价格表",
|
|
|
basicinfo: {
|
|
|
el: "select",
|
|
|
- span: 6,
|
|
|
+ span: 2,
|
|
|
editable: ALLOW_EDIT_STATE,
|
|
|
- rules: [{ required: true }]
|
|
|
+ rules: [{ required: true }],
|
|
|
+ defaultValue: 0
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
- field: "springtypename",
|
|
|
+ field: "springtypeid",
|
|
|
title: "弹簧分类",
|
|
|
basicinfo: {
|
|
|
el: "select",
|
|
|
- span: 6,
|
|
|
+ span: 1,
|
|
|
+ editable: ALLOW_EDIT_STATE,
|
|
|
+ defaultValue: 0,
|
|
|
+ rules: [{ required: true }]
|
|
|
+ }
|
|
|
+ },
|
|
|
+ {
|
|
|
+ field: "moneyrate",
|
|
|
+ title: "汇率",
|
|
|
+ basicinfo: {
|
|
|
+ el: "input",
|
|
|
+ span: 1,
|
|
|
editable: ALLOW_EDIT_STATE,
|
|
|
- rules: [{ required: true, message: "请选择价格表", trigger: "change" }]
|
|
|
+ props: {
|
|
|
+ placeholder: "请输入汇率"
|
|
|
+ },
|
|
|
+ rules: [{ required: true, pattern: new RegExp(/^\d+(\.\d+)?$/), message: "汇率不能为0", trigger: "change" }]
|
|
|
}
|
|
|
},
|
|
|
{
|
|
@@ -55,29 +82,32 @@ export const useHooks = (t?: any) => {
|
|
|
title: "利润率",
|
|
|
basicinfo: {
|
|
|
el: "input",
|
|
|
+ span: 1,
|
|
|
editable: ALLOW_EDIT_STATE,
|
|
|
props: {
|
|
|
placeholder: "请输入利润率"
|
|
|
},
|
|
|
- rules: [{ required: true, pattern: new RegExp(/^[1-9]\d*(\.\d+)?$/), message: "利润率不能为0", trigger: "change" }]
|
|
|
+ rules: [{ required: true, pattern: new RegExp(/^\d+(\.\d+)?$/), message: "利润率不能为0", trigger: "change" }]
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
- field: "moneyrate",
|
|
|
- title: "汇率",
|
|
|
+ field: "discount",
|
|
|
+ title: "折扣率",
|
|
|
basicinfo: {
|
|
|
el: "input",
|
|
|
+ span: 1,
|
|
|
editable: ALLOW_EDIT_STATE,
|
|
|
props: {
|
|
|
- placeholder: "请输入汇率"
|
|
|
+ placeholder: "请输入折扣率"
|
|
|
},
|
|
|
- rules: [{ required: true, pattern: new RegExp(/^[1-9]\d*(\.\d+)?$/), message: "汇率不能为0", trigger: "change" }]
|
|
|
+ rules: [{ required: true, pattern: new RegExp(/^\d+(\.\d+)?$/), message: "折扣率不能为0", trigger: "change" }]
|
|
|
}
|
|
|
},
|
|
|
{
|
|
|
field: "if_rate_auto",
|
|
|
title: "是否自动读取汇率",
|
|
|
datatype: "checkbox",
|
|
|
+ editHidden: true,
|
|
|
basicinfo: {
|
|
|
el: "switch",
|
|
|
editable: ALLOW_EDIT_STATE
|
|
@@ -114,6 +144,7 @@ export const useHooks = (t?: any) => {
|
|
|
basicinfo: {
|
|
|
el: "input",
|
|
|
editable: ALLOW_EDIT_STATE,
|
|
|
+ span: 1,
|
|
|
props: {
|
|
|
placeholder: "请输入部门管理费"
|
|
|
},
|
|
@@ -125,13 +156,69 @@ export const useHooks = (t?: any) => {
|
|
|
title: "默认物料类别",
|
|
|
basicinfo: {
|
|
|
el: "tree-select",
|
|
|
+ span: 2,
|
|
|
editable: ALLOW_EDIT_STATE
|
|
|
}
|
|
|
}
|
|
|
];
|
|
|
|
|
|
+ // 保存
|
|
|
+ const fSave = (param: any) => {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ ElMessageBox.confirm("是否确定要保存吗?", "询问", {
|
|
|
+ confirmButtonText: "是",
|
|
|
+ cancelButtonText: "否",
|
|
|
+ type: "warning"
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ SaveDept(param).then(() => {
|
|
|
+ ElMessage.success("保存成功!");
|
|
|
+ state.VxeTableRef?.refresh();
|
|
|
+ resolve({});
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ ElMessage({
|
|
|
+ type: "info",
|
|
|
+ message: "操作取消"
|
|
|
+ });
|
|
|
+ });
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
+ // 删除
|
|
|
+ const fDelete = () => {
|
|
|
+ const checkDate = state.VxeTableRef?.element.getCheckboxRecords();
|
|
|
+ if (checkDate.length === 0) {
|
|
|
+ ElMessage.error("请选择要删除的数据!");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const delArr = checkDate.map((item: any) => {
|
|
|
+ return { deptid: parseInt(item.deptid), deptname: item.deptname };
|
|
|
+ });
|
|
|
+ ElMessageBox.confirm("是否确定要删除吗?", "询问", {
|
|
|
+ confirmButtonText: "是",
|
|
|
+ cancelButtonText: "否",
|
|
|
+ type: "warning"
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ DelteDept({ list: delArr }).then(() => {
|
|
|
+ ElMessage.success("删除成功!");
|
|
|
+ state.VxeTableRef?.refresh();
|
|
|
+ });
|
|
|
+ })
|
|
|
+ .catch(() => {
|
|
|
+ ElMessage({
|
|
|
+ type: "info",
|
|
|
+ message: "操作取消"
|
|
|
+ });
|
|
|
+ });
|
|
|
+ };
|
|
|
+
|
|
|
return {
|
|
|
...toRefs(state),
|
|
|
- columns
|
|
|
+ columns,
|
|
|
+ fSave,
|
|
|
+ fDelete
|
|
|
};
|
|
|
};
|