Browse Source

货代 国家

caojunjie 1 year ago
parent
commit
37beca6e09

+ 51 - 0
src/api/iosBasicData/bcountrys.js

@@ -0,0 +1,51 @@
+import request from '@/router/axios';
+
+// 国家的接口
+export const bcountrysList = (current, size, params) => {
+  return request({
+    url: '/api/blade-los/bcountrys/list',
+    method: 'get',
+    params: {
+      ...params,
+      current,
+      size,
+    }
+  })
+}
+// 国家详情
+export const getDetail = (id) => {
+  return request({
+    url: '/api/blade-los/bcountrys/detail',
+    method: 'get',
+    params: {
+      id
+    }
+  })
+}
+
+export const remove = (ids) => {
+  return request({
+    url: '/api/blade-los/bcountrys/remove',
+    method: 'post',
+    params: {
+      ids,
+    }
+  })
+}
+
+export const add = (row) => {
+  return request({
+    url: '/api/blade-los/bcountrys/submit',
+    method: 'post',
+    data: row
+  })
+}
+
+export const update = (row) => {
+  return request({
+    url: '/api/blade-los/bcountrys/submit',
+    method: 'post',
+    data: row
+  })
+}
+

+ 3 - 0
src/views/TaskKanban/index.vue

@@ -224,6 +224,9 @@ import {dateFormat} from "@/util/date";
               label: "任务内容",
               prop: "tsInfo",
               search: true,
+                type: 'textarea',
+                span: 24,
+                minRows: 3,
               rules: [{
                 required: true,
                 message: "请输入任务信息",

+ 381 - 333
src/views/iosBasicData/bcountrys/index.vue

@@ -1,349 +1,397 @@
 <template>
-  <basic-container class="page-crad" v-if="flag">
-    <avue-crud :option="option"
-               :data="dataList"
-               ref="crud"
-               v-model="form"
-               :page.sync="page"
-               @row-del="rowDel"
-               @row-update="rowUpdate"
-               :before-open="beforeOpen"
-               :before-close="beforeClose"
-               @row-save="rowSave"
-               @search-change="searchChange"
-               @search-reset="searchReset"
-               @on-load="onLoad"
-               @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 287)"
-               @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 287)"
-               @search-criteria-switch="searchCriteriaSwitch"
-               @tree-load="treeLoad">
-        <template slot-scope="{type,size,row,$index}" slot="menuLeft">
-            <el-button icon="el-icon-plus" type="primary" :size="size" @click="handleAdd">新增</el-button>
-        </template>
-    </avue-crud>
-  </basic-container>
+    <basic-container>
+        <avue-crud :option="option"
+                   :table-loading="loading"
+                   :data="data"
+                   :page.sync="page"
+                   :permission="permissionList"
+                   :before-open="beforeOpen"
+                   v-model="form"
+                   ref="crud"
+                   @row-update="rowUpdate"
+                   @row-save="rowSave"
+                   @row-del="rowDel"
+                   @search-change="searchChange"
+                   @search-reset="searchReset"
+                   @selection-change="selectionChange"
+                   @current-change="currentChange"
+                   @size-change="sizeChange"
+                   @refresh-change="refreshChange"
+                   @resetColumn="resetColumnTwo('crud', 'option', 'optionBack', 287)"
+                   @saveColumn="saveColumnTwo('crud', 'option', 'optionBack', 287)"
+                   @on-load="onLoad" >
+            <template slot="menuLeft">
+                <el-button type="danger"
+                           size="small"
+                           icon="el-icon-delete"
+                           plain
+                           v-if="permission.bcountrys_delete"
+                           @click="handleDelete">删 除
+                </el-button>
+            </template>
+        </avue-crud>
+    </basic-container>
 </template>
 
 <script>
-import {getUser} from "@/api/system/user";
+import {bcountrysList, getDetail, add, update, remove} from "@/api/iosBasicData/bcountrys";
+import {mapGetters} from "vuex";
+
 export default {
-  name: "customerInformation",
-  data() {
-    return {
-      form: {},
-      option: {},
-      optionBack: {
-        addBtn:false,
-        headerAlign: "center",
-        align: "center",
-        border: true,
-        index: true,
-        // lazy: true,
-        stripe: true,
-        height: "auto",
-        tip: false,
-        simplePage: true,
-        searchShow: true,
-        tree: true,
-        searchMenuSpan: 16,
-        searchSpan: 8,
-        searchIcon: true,
-        searchIndex: 2,
-        selection: true,
-        viewBtn: false,
-        menuWidth: 140,
-        column: [{
-          label: "仓库编码",
-          prop: "code",
-          search: true,
-          overHidden: true,
-          // width: 120,
-          rules: [
-            {
-              required: true,
-              message: " ",
-              trigger: "blur"
-            }
-          ]
-        }, {
-          label: "仓库名称",
-          prop: "cname",
-          search: true,
-          overHidden: true,
-          // width: 120,
-          rules: [
-            {
-              required: true,
-              message: " ",
-              trigger: "blur"
+    data() {
+        return {
+            form: {},
+            query: {},
+            loading: true,
+            page: {
+                pageSize: 10,
+                currentPage: 1,
+                total: 0
+            },
+            selectionList: [],
+            option:{},
+            optionBack: {
+                height:'auto',
+                calcHeight: 30,
+                tip: false,
+                searchShow: true,
+                searchMenuSpan: 6,
+                border: true,
+                index: true,
+                viewBtn: true,
+                selection: true,
+                dialogClickModal: false,
+                column: [
+                    {
+                        label: "主键",
+                        prop: "id",
+                        rules: [{
+                            required: true,
+                            message: "请输入主键",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "创建人 Id",
+                        prop: "createUser",
+                        rules: [{
+                            required: true,
+                            message: "请输入创建人 Id",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "创建人",
+                        prop: "createUserName",
+                        rules: [{
+                            required: true,
+                            message: "请输入创建人",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "创建部门 Id",
+                        prop: "createDept",
+                        rules: [{
+                            required: true,
+                            message: "请输入创建部门 Id",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "创建部门",
+                        prop: "createDeptName",
+                        rules: [{
+                            required: true,
+                            message: "请输入创建部门",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "创建时间",
+                        prop: "createTime",
+                        rules: [{
+                            required: true,
+                            message: "请输入创建时间",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "修改人 Id",
+                        prop: "updateUser",
+                        rules: [{
+                            required: true,
+                            message: "请输入修改人 Id",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "修改人",
+                        prop: "updateUserName",
+                        rules: [{
+                            required: true,
+                            message: "请输入修改人",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "修改时间",
+                        prop: "updateTime",
+                        rules: [{
+                            required: true,
+                            message: "请输入修改时间",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "编码",
+                        prop: "code",
+                        rules: [{
+                            required: true,
+                            message: "请输入编码",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "国际三字码",
+                        prop: "unCode",
+                        rules: [{
+                            required: true,
+                            message: "请输入国际三字码",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "中文名称",
+                        prop: "cnName",
+                        rules: [{
+                            required: true,
+                            message: "请输入中文名称",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "英文名称",
+                        prop: "enName",
+                        rules: [{
+                            required: true,
+                            message: "请输入英文名称",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "版本",
+                        prop: "version",
+                        rules: [{
+                            required: true,
+                            message: "请输入版本",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "状态(0 正常 1停用)",
+                        prop: "status",
+                        rules: [{
+                            required: true,
+                            message: "请输入状态(0 正常 1停用)",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "是否已删除(0 否 1是)",
+                        prop: "isDeleted",
+                        rules: [{
+                            required: true,
+                            message: "请输入是否已删除(0 否 1是)",
+                            trigger: "blur"
+                        }]
+                    },
+                    {
+                        label: "备注",
+                        prop: "remarks",
+                        rules: [{
+                            required: true,
+                            message: "请输入备注",
+                            trigger: "blur"
+                        }]
+                    },
+                ]
+            },
+            data: []
+        };
+    },
+    computed: {
+        ...mapGetters(["permission"]),
+        // 表格多个按钮权限控制,采用函数方式可以精确到行控制
+        permissionList() {
+            return {
+                addBtn: this.vaildData(this.permission.bcountrys_add, false),
+                viewBtn: this.vaildData(this.permission.bcountrys_view, false),
+                delBtn: this.vaildData(this.permission.bcountrys_delete, false),
+                editBtn: this.vaildData(this.permission.bcountrys_edit, false)
+            };
+        },
+        ids() {
+            let ids = [];
+            this.selectionList.forEach(ele => {
+                ids.push(ele.id);
+            });
+            return ids.join(",");
+        }
+    },
+    async created() {
+        this.option = await this.getColumnData(this.getColumnName(287), this.optionBack);
+    },
+    methods: {
+        // 新增数据后点击确定触发该事件 (新增确认)
+        rowSave(row, done, loading) {
+            add(row).then(() => {
+                this.onLoad(this.page);
+                this.$message({
+                    type: "success",
+                    message: "操作成功!"
+                });
+                done();
+            }, error => {
+                loading();
+                window.console.log(error);
+            });
+        },
+        // 更新数据后确定触发该事件 (编辑确认)
+        rowUpdate(row, index, done, loading) {
+            update(row).then(() => {
+                this.onLoad(this.page);
+                this.$message({
+                    type: "success",
+                    message: "操作成功!"
+                });
+                done();
+            }, error => {
+                loading();
+                console.log(error);
+            });
+        },
+        // 行数据删除触发 (删除)
+        rowDel(row) {
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            })
+                .then(() => {
+                    return remove(row.id);
+                })
+                .then(() => {
+                    this.onLoad(this.page);
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    });
+                });
+        },
+        // 多选删除触发
+        handleDelete() {
+            if (this.selectionList.length === 0) {
+                this.$message.warning("请选择至少一条数据");
+                return;
             }
-          ]
-        }, {
-          label: "联系人",
-          prop: "contacts",
-          search: true,
-          overHidden: true,
-          // width: 120,
-          rules: [
-            {
-              required: true,
-              message: " ",
-              trigger: "blur"
+            this.$confirm("确定将选择数据删除?", {
+                confirmButtonText: "确定",
+                cancelButtonText: "取消",
+                type: "warning"
+            })
+                .then(() => {
+                    return remove(this.ids);
+                })
+                .then(() => {
+                    this.onLoad(this.page);
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    });
+                    this.$refs.crud.toggleSelection();
+                });
+        },
+        // 打开前的回调,会暂停Dialog的打开,done用于关闭Dialog,type为当前窗口的类型
+        beforeOpen(done, type) {
+            if (["edit", "view"].includes(type)) {
+                getDetail(this.form.id).then(res => {
+                    this.form = res.data.data;
+                });
             }
-          ]
-        }, {
-          label: "联系电话",
-          prop: "tel",
-          search: true,
-          overHidden: true,
-          // width: 120,
-          rules: [
-            {
-              required: true,
-              message: " ",
-              trigger: "blur"
+            done();
+        },
+        // 清空搜索回调方法
+        searchReset() {
+            this.query = {};
+            this.onLoad(this.page);
+        },
+        // 点击搜索后触发该事件(由于page分页信息和search搜索信息,可以直接通过this.page和this.search拿到)
+        searchChange(params, done) {
+            this.query = params;
+            this.page.currentPage = 1;
+            this.onLoad(this.page, params);
+            done();
+        },
+        // 当选择项发生变化时会触发该事件 (多选)
+        selectionChange(list) {
+            this.selectionList = list;
+        },
+        // 用于多选表格,传递数组进去,会勾选数组中的对象,如果已经勾选则会取消勾选
+        selectionClear() {
+            this.selectionList = [];
+            this.$refs.crud.toggleSelection();
+        },
+        // 分页页数
+        currentChange(currentPage){
+            this.page.currentPage = currentPage;
+        },
+        // 分页条数
+        sizeChange(pageSize){
+            this.page.pageSize = pageSize;
+        },
+        // 点击刷新
+        refreshChange() {
+            this.onLoad(this.page, this.query);
+        },
+        // 获取列表数据
+        onLoad(page, params = {}) {
+            this.loading = true;
+            bcountrysList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
+                const data = res.data.data;
+                this.page.total = data.total;
+                this.data = data.records;
+                this.loading = false;
+                this.selectionClear();
+            });
+        },
+        //自定义列保存
+        async saveColumnTwo(ref, option, optionBack, code) {
+            /**
+             * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
+             * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
+             * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
+             */
+            const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
+            if (inSave) {
+                this.$message.success("保存成功");
+                //关闭窗口
+                this.$refs[ref].$refs.dialogColumn.columnBox = false;
             }
-          ]
-        }, {
-          label: "是否计费",
-          prop: "chargeOrNot",
-          search: true,
-          overHidden: true,
-          // width: 120,
-          type: "select",
-          dicData: [{
-            label: "是",
-            value: 0
-          }, {
-            label: "否",
-            value: 1
-          }],
-        }, {
-          label: "库容",
-          prop: "storageCapacity",
-          search: true,
-          overHidden: true,
-          // width: 120,
-          // rules: [
-          //   {
-          //     required: true,
-          //     message: " ",
-          //     trigger: "blur"
-          //   }
-          // ]
-        }, {
-          label: "所属公司",
-          prop: "salesCompanyId",
-          search: true,
-          overHidden: true,
-            disabled: true,
-          // width: 120,
-          type: 'select',
-          props: {
-            label: 'fullName',
-            value: 'id'
-          },
-          dicUrl: '/api/blade-system/dept/top-list',
-          rules: [
-            {
-              required: true,
-              message: " ",
-              trigger: "blur"
+        },
+        //自定义列重置
+        async resetColumnTwo(ref, option, optionBack, code) {
+            this[option] = this[optionBack];
+            const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
+            if (inSave) {
+                this.$message.success("重置成功");
+                this.$refs[ref].$refs.dialogColumn.columnBox = false;
             }
-          ]
-        }, {
-          label: "备注",
-          prop: "remarks",
-          type: "textarea",
-          minRows: 3,
-          span: 24,
-          overHidden: true,
-          // width: 200
-        }]
-      },
-      parentId: 0,
-      dataList: [],
-        // 请求数据
-      page: {
-        pageSize: 20,
-        currentPage: 1,
-        total: 0,
-        pageSizes: [10, 20, 30, 40, 50, 100, 200, 300, 400, 500]
-      },
-      treeDeptId: "",
-      flag:false,
-    };
-  },
-  async created() {
-    this.option = await this.getColumnData(this.getColumnName(287), this.optionBack);
-    let i = 0;
-    this.option.column.forEach(item => {
-      if (item.search) i++
-    })
-    if (i % 3 !== 0) {
-      const num = 3 - Number(i % 3)
-      this.option.searchMenuSpan = num * 8;
-      this.option.searchMenuPosition = "right";
-    }
-    setTimeout(()=>{
-      this.flag = true
-    },200)
-  },
-  methods: {
-    //删除列表后面的删除按钮触发触发(row, index, done)
-    rowDel(row, index, done) {
-      this.$confirm("确定将选择数据删除?", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      })
-        .then(() => {
-          // return deleteDetails(row.id);
-          //   删除接口
-        })
-        .then(() => {
-          this.$message({
-            type: "success",
-            message: "操作成功!"
-          });
-          // 数据回调进行刷新
-          done(row);
-        });
-    },
-    //修改时的修改按钮点击触发
-    rowUpdate(row, index, done, loading) {
-        console.log('修改触发')
-      // typeSave(row).then(
-      //   () => {
-      //     this.$message({
-      //       type: "success",
-      //       message: "操作成功!"
-      //     });
-      //     // 数据回调进行刷新
-      //     done(row);
-      //   },
-      //   error => {
-      //     window.console.log(error);
-      //     loading();
-      //   }
-      // );
-    },
-    //新增修改时保存触发
-    rowSave(row, done, loading) {
-      console.log(row,'修改保存');
-      // typeSave(row).then(res => {
-      //     console.log(res);
-      //     this.page.currentPage = 1;
-      //     this.onLoad(this.page, {});
-      //     done();
-      //   },
-      //   error => {
-      //     window.console.log(error);
-      //     loading();
-      //   }
-      // );
-    },
-    //新增按钮触发
-    handleAdd(row) {
-      // this.parentId = row.id;
-      // const column = this.findObject(this.option.column, "parentId");
-      // column.value = row.id;
-      // column.addDisabled = true;
-        getUser(JSON.parse(localStorage.getItem('saber-userInfo')).content.user_id).then(res=>{
-            this.form.salesCompanyName = res.data.data.deptName
-            this.form.salesCompanyId = res.data.data.deptId
-        })
-      this.$refs.crud.rowAdd();
-    },
-    //新增子项和新增触发查询所有
-    beforeOpen(done, type) {
-      if (["add", "edit"].includes(type)) {
-        this.option.column.forEach(e => {
-          if (e.prop == "storageTypeId") {
-            this.$set(this.option.column, 3, { ...e, value: this.treeDeptId });
-          }
-        });
-      }
-        console.log('查询明细')
-      // if (["edit", "view"].includes(type)) {
-      //   detail(this.form.id).then(res => {
-      //     this.form = res.data.data;
-      //   });
-      // }
-      done();
-    },
-    //点击新增时触发
-    beforeClose(done) {
-      this.parentId = "";
-      // const column = this.findObject(this.option.column, "parentId");
-      // column.value = "";
-      // column.addDisabled = false;
-      done();
-    },
-    //点击搜索按钮触发
-    searchChange(params, done) {
-      this.page.currentPage = 1;
-      this.onLoad(this.page, params);
-      done();
-    },
-    searchReset() {
-      this.query = {};
-      this.treeDeptId = "";
-      this.onLoad(this.page);
-    },
-    onLoad(page, params = { parentId: 0 }) {
-      let queryParams = Object.assign({}, params, {
-        size: page.pageSize,
-        current: page.currentPage,
-        parentId: 0,
-        storageTypeId: this.treeDeptId
-      });
-      // customerList(queryParams).then(res => {
-      //   this.dataList = res.data.data.records;
-      //   this.page.total = res.data.data.total;
-      // });
-    },
-    searchCriteriaSwitch(type) {
-      this.$refs.crud.doLayout();
-      this.$refs.crud.getTableHeight();
-    },
-    //树桩列点击展开触发
-    treeLoad(tree, treeNode, resolve) {
-      const parentId = tree.id;
-      // customerList({ parentId: parentId }).then(res => {
-      //   resolve(res.data.data.records);
-      // });
-    },
+        }
 
-    //自定义列保存
-    async saveColumnTwo(ref, option, optionBack, code) {
-      /**
-       * 已定义全局方法,直接使用,saveColumnData保存列数据方法,参数传值(表格名称,当前表格的option数据)
-       * 已定义全局方法,直接使用,getColumnName方法用来获取枚举值,参数根据自己定义的code值获取中文名
-       * 一定要执行异步操作,要等接口成功返回,才能执行下一行代码
-       */
-      const inSave = await this.saveColumnData(this.getColumnName(code), this[option]);
-      if (inSave) {
-        this.$message.success("保存成功");
-        //关闭窗口
-        this.$refs[ref].$refs.dialogColumn.columnBox = false;
-      }
-    },
-    //自定义列重置
-    async resetColumnTwo(ref, option, optionBack, code) {
-      this[option] = this[optionBack];
-      const inSave = await this.delColumnData(this.getColumnName(code), this[optionBack]);
-      if (inSave) {
-        this.$message.success("重置成功");
-        this.$refs[ref].$refs.dialogColumn.columnBox = false;
-      }
     }
-  }
 };
 </script>
 
 <style scoped>
-.page-crad ::v-deep .basic-container__card {
-  height: 94.8vh;
-}
 </style>