Browse Source

列设置

qukaidi 4 năm trước cách đây
mục cha
commit
d2a503a58b

+ 395 - 196
src/views/Warehousing/inStock/AddOrUpdate.vue

@@ -773,6 +773,79 @@
         </el-row>
       </div>
     </el-form>
+    <el-dialog
+      title="自定义列显示"
+      :visible.sync="showSetting"
+      width="700px"
+      v-dialogDrag
+    >
+      <template slot="title">
+        <div class="avue-crud__dialog__header">
+          <span class="el-dialog__title">
+            <span
+              style="
+                display: inline-block;
+                width: 3px;
+                height: 20px;
+                margin-right: 5px;
+                float: left;
+                margin-top: 2px;
+              "
+            ></span>
+          </span>
+        </div>
+      </template>
+      <div>配置排序列数据(拖动调整顺序)</div>
+      <div style="margin-left: 17px">
+        <el-checkbox
+          v-model="allCheck"
+          label="全选"
+          @change="allChecked"
+        ></el-checkbox>
+      </div>
+      <div style="padding: 4px; display: flex; justify-content: center">
+        <draggable
+          v-model="setRowList"
+          group="site"
+          animation="300"
+          @start="onStart"
+          @end="onEnd"
+          handle=".indraggable"
+        >
+          <transition-group>
+            <div
+              v-for="item in setRowList"
+              :key="item.surface"
+              class="listStyle"
+            >
+              <div style="width: 500px" class="indraggable">
+                <div class="progress" :style="{ width: item.width + 'px' }">
+                  <el-checkbox
+                    :label="item.name"
+                    v-model="item.checked"
+                    :true-label="0"
+                    :false-label="1"
+                    >{{ item.name }}
+                  </el-checkbox>
+                </div>
+              </div>
+              <el-input-number
+                v-model.number="item.width"
+                controls-position="right"
+                :min="1"
+                :max="500"
+                size="mini"
+              ></el-input-number>
+            </div>
+          </transition-group>
+        </draggable>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="showSetting = false">取 消</el-button>
+        <el-button @click="delRow" type="danger">重 置</el-button>
+        <el-button type="primary" @click="save()">确 定</el-button>
+      </span>
+    </el-dialog>
     <el-collapse v-model="collapselist">
       <el-collapse-item name="1">
         <template slot="title">
@@ -850,6 +923,14 @@
                   <el-dropdown-item command="f">吊牌信息</el-dropdown-item>
                 </el-dropdown-menu>
               </el-dropdown>
+              <div style="margin: 0 10px">
+                <el-button
+                  icon="el-icon-setting"
+                  size="mini"
+                  circle
+                  @click="showSetting = !showSetting"
+                ></el-button>
+              </div>
             </el-col>
           </el-row>
           <el-table
@@ -863,170 +944,36 @@
             <el-table-column type="selection" width="55" align="center" fixed />
             <el-table-column label="序号" type="index" width="80" fixed />
             <el-table-column
-              prop="fBillstatus"
-              header-align="center"
-              width="150px"
+              v-for="(item, index) in getRowList"
+              :key="index"
+              :label="item.name"
+              :width="item.width"
+              :prop="item.label"
               align="center"
-              fixed
-              label="状态"
+              :fixed="item.fixed"
+              :show-overflow-tooltip="true"
+              sortable
             >
               <template slot-scope="scope">
-                <span v-if="scope.row.fBillstatus === 10">计划</span>
-                <span v-if="scope.row.fBillstatus === 20">待入库</span>
-                <span v-if="scope.row.fBillstatus === 30">入库中</span>
-                <span v-if="scope.row.fBillstatus === 40">已入库</span>
+                <span v-if="item.label == 'fBillstatus'">
+                  {{ scope.row.fBillstatus | fBillstatusFormat }}
+                </span>
+                <span v-else-if="item.label == 'fBsdate'">
+                  {{ scope.row.fBsdate | fBsdateFormat }}
+                </span>
+                 <span v-else-if="item.label == 'fGoodsid'">
+                  {{ scope.row.fGoodsid | goodsFormat(goodsOptions)}}
+                </span>
+                  <span v-else-if="item.label == 'fBusinessType'">
+                  {{ scope.row.fBusinessType | fStorageTypeFormat(fStorageTypeOptions)}}
+                </span>
+                 <span v-else-if="item.label == 'fCntrtype'">
+                  {{ scope.row.fCntrtype | fCntrtypeFormat(cntrList)}}
+                </span>
+                <span v-else>{{ scope.row[item.label] }}</span>
               </template>
             </el-table-column>
             <el-table-column
-              fixed
-              prop="fBsdate"
-              header-align="center"
-              align="center"
-              width="150px"
-              label="入库日期"
-              :formatter="fBsdateFormat"
-            />
-            <el-table-column
-              prop="fMblno"
-              header-align="center"
-              align="center"
-              width="140px"
-              label="提单号"
-            />
-            <el-table-column
-              prop="fGoodsid"
-              header-align="center"
-              align="center"
-              width="140px"
-              label="*品名"
-              :formatter="goodsFormat"
-            />
-            <el-table-column
-              prop="fBusinessType"
-              header-align="center"
-              width="140px"
-              align="center"
-              label="*货物属性"
-              :formatter="fStorageTypeFormat"
-            />
-            <el-table-column
-              prop="fMarks"
-              header-align="center"
-              align="center"
-              width="140px"
-              label="*属性详情"
-            />
-
-            <el-table-column
-              prop="fWarehouseInformation"
-              header-align="center"
-              width="240px"
-              align="center"
-              label="*库区"
-            />
-            <el-table-column
-              prop="fCntrtype"
-              header-align="center"
-              align="center"
-              width="140px"
-              label="箱型"
-              :formatter="fCntrtypeFormat"
-            />
-            <el-table-column
-              prop="fCntqty"
-              header-align="center"
-              align="center"
-              width="140px"
-              label="箱量"
-            />
-            <el-table-column
-              prop="fQty"
-              header-align="center"
-              width="150px"
-              align="center"
-              label="*入库件数"
-            />
-            <el-table-column
-              prop="fGrossweight"
-              header-align="center"
-              width="180px"
-              align="center"
-              label="*入库毛重(kg)"
-            />
-            <el-table-column
-              prop="fNetweight"
-              header-align="center"
-              width="180px"
-              align="center"
-              label="*入库净重(kg)"
-            />
-            <el-table-column
-              prop="fPackagespecs"
-              header-align="center"
-              width="150px"
-              align="center"
-              label="*包装规格"
-            />
-            <el-table-column
-              prop="fTruckno"
-              header-align="center"
-              width="130px"
-              align="center"
-              label="*车号"
-            />
-            <el-table-column
-              prop="fDriverName"
-              header-align="center"
-              width="130px"
-              align="center"
-              label="司机名"
-            />
-
-            <el-table-column
-              prop="fDriverTel"
-              header-align="center"
-              width="200px"
-              align="center"
-              label="司机电话"
-            />
-            <el-table-column
-              prop="fDriverIdCar"
-              header-align="center"
-              width="200px"
-              align="center"
-              label="司机身份证"
-            />
-            <el-table-column
-              prop="fSerialNumber"
-              header-align="center"
-              width="160px"
-              align="center"
-              label="流水号"
-            />
-
-            <el-table-column
-              prop="fCntrno"
-              header-align="center"
-              width="130px"
-              align="center"
-              label="箱号"
-            />
-            <el-table-column
-              prop="fGoodsval"
-              header-align="center"
-              width="130px"
-              align="center"
-              label="货值"
-            />
-
-            <el-table-column
-              prop="remark"
-              header-align="center"
-              width="130px"
-              align="center"
-              label="备注"
-            />
-            <el-table-column
               header-align="center"
               align="center"
               label="操作"
@@ -3112,6 +3059,8 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import UploadFile from "@/components/Uploadfile";
 import Cookies from "js-cookie";
 import { getToken } from "@/utils/auth";
+import { addSet, select, resetModule } from "@/api/system/set";
+import draggable from "vuedraggable";
 export default {
   name: "inStock",
   props: {
@@ -3129,6 +3078,7 @@ export default {
     Treeselect,
     AddOrUpdate,
     ApprovalComments,
+    draggable,
   },
   data() {
     return {
@@ -3253,9 +3203,165 @@ export default {
       doNot: false,
       stockoi: null,
       dataShowcar: null,
+      drag: false,
+      tableDate: [
+        {
+          surface: "0",
+          label: "fBillstatus",
+          name: "状态",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "1",
+          label: "fBsdate",
+          name: "入库日期",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "2",
+          label: "fMblno",
+          name: "提单号",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "3",
+          label: "fGoodsid",
+          name: "品名",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "4",
+          label: "fBusinessType",
+          name: "货物属性",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "5",
+          label: "fMarks",
+          name: "属性详情",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "6",
+          label: "fWarehouseInformation",
+          name: "库区",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "7",
+          label: "fCntrtype",
+          name: "箱型",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "8",
+          label: "fCntqty",
+          name: "箱量",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "9",
+          label: "fQty",
+          name: "入库件数",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "10",
+          label: "fGrossweight",
+          name: "入库毛重(kg)",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "11",
+          label: "fNetweight",
+          name: "入库净重(kg)",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "12",
+          label: "fPackagespecs",
+          name: "包装规格",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "13",
+          label: "fTruckno",
+          name: "车号",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "14",
+          label: "fDriverName",
+          name: "司机名称",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "15",
+          label: "fDriverTel",
+          name: "司机电话",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "16",
+          label: "fDriverIdCar",
+          name: "司机身份证",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "17",
+          label: "fSerialNumber",
+          name: "流水号",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "18",
+          label: "fCntrno",
+          name: "箱号",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "19",
+          label: "fGoodsval",
+          name: "货值",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "20",
+          label: "remark",
+          name: "备注",
+          checked: 0,
+          width: 100,
+        },
+      ],
+      setRowList: [],
+      getRowList: [],
+      allCheck: false,
+      showSetting: false,
     };
   },
   created() {
+    this.setRowList = this.tableDate;
+    this.getRowList = this.tableDate;
     this.getDicts("data_stltype_type").then((response) => {
       this.fStltypeOptions = response.data;
     });
@@ -3324,6 +3430,7 @@ export default {
     });
     this.company = localStorage.getItem("companyName");
     this.queryUser();
+    this.getRow();
   },
   filters: {
     fStorageFormat(row) {
@@ -3344,6 +3451,60 @@ export default {
       }
       return name;
     },
+    fStorageTypeFormat(row,fStorageTypeOptions) {
+      let fStorageType;
+      fStorageTypeOptions.map((e) => {
+        if (row== e.dictValue) {
+          fStorageType = e.dictLabel;
+        }
+      });
+      return fStorageType;
+    },
+    fCntrtypeFormat(row,cntrList) {
+      let fCntrtype;
+      cntrList.map((e) => {
+        if (row == e.fId) {
+          fCntrtype = e.fName;
+        }
+      });
+      return fCntrtype;
+    },
+    goodsFormat(row,goodsOptions) {
+      let goods;
+      goodsOptions.map((e) => {
+        if (row == e.fId) {
+          goods = e.fName;
+        }
+      });
+      return goods;
+    },
+    fBsdateFormat(row) {
+      if (row) {
+        const dateMat = new Date(row);
+        const year = dateMat.getFullYear();
+        const month = dateMat.getMonth() + 1;
+        const day = dateMat.getDate();
+        const timeFormat = year + "-" + month + "-" + day;
+        return timeFormat;
+      }
+    },
+    fBillstatusFormat(row) {
+      let Name
+      switch (row) {
+        case 10:
+          Name = "计划";
+          break;
+        case 20:
+          Name = "待入库";
+          break;
+        case 30:
+          Name = "入库中";
+          break;
+        default:
+          Name = "已入库";
+      }
+      return Name;
+    },
   },
   methods: {
     init() {
@@ -3383,6 +3544,81 @@ export default {
         remark: null,
       };
     },
+    //列设置全选
+    allChecked() {
+      if (this.allCheck == true) {
+        this.setRowList.map((e) => {
+          return (e.checked = 0);
+        });
+      } else {
+        this.setRowList.map((e) => {
+          return (e.checked = 1);
+        });
+      }
+    },
+    //查询列数据
+    getRow() {
+      let that = this;
+      this.data = {
+        tableName: "入库明细",
+        userId: Cookies.get("userName"),
+      };
+      select(this.data).then((res) => {
+        if (res.data.length != 0) {
+          this.getRowList = res.data.filter((e) => e.checked == 0);
+          this.setRowList = res.data;
+          this.setRowList = this.setRowList.reduce((res, item) => {
+            res.push({
+              surface: item.surface,
+              label: item.label,
+              name: item.name,
+              checked: item.checked,
+              width: item.width,
+              fixed: item.fixed,
+            });
+            return res;
+          }, []);
+        }
+      });
+    },
+    //重置列表
+    delRow() {
+      this.data = {
+        tableName: "入库明细",
+        userId: Cookies.get("userName"),
+      };
+      resetModule(this.data).then((res) => {
+        if (res.code == 200) {
+          this.showSetting = false;
+          this.setRowList = this.$options.data().tableDate;
+          this.getRowList = this.$options.data().tableDate;
+        }
+      });
+    },
+    //保存列设置
+    save() {
+      this.showSetting = false;
+      this.data = {
+        tableName: "入库明细",
+        userId: Cookies.get("userName"),
+        sysTableSetList: this.setRowList,
+      };
+      addSet(this.data).then((res) => {
+        if (res.code == 200) {
+          this.showSetting = false;
+          this.getRowList = this.setRowList.filter((e) => e.checked == 0);
+          console.log(this.tableDate);
+        }
+      });
+    },
+    //开始拖拽事件
+    onStart() {
+      this.drag = true;
+    },
+    //拖拽结束事件
+    onEnd() {
+      this.drag = false;
+    },
     //撤销审批
     revokeTwo() {
       let data = {
@@ -3708,43 +3944,6 @@ export default {
         this.$set(this.form, "fItemsStatus", 1);
       });
     },
-    fStorageTypeFormat(row) {
-      let fStorageType;
-      this.fStorageTypeOptions.map((e) => {
-        if (row.fBusinessType == e.dictValue) {
-          fStorageType = e.dictLabel;
-        }
-      });
-      return fStorageType;
-    },
-    fCntrtypeFormat(row) {
-      let fCntrtype;
-      this.cntrList.map((e) => {
-        if (row.fCntrtype == e.fId) {
-          fCntrtype = e.fName;
-        }
-      });
-      return fCntrtype;
-    },
-    goodsFormat(row) {
-      let goods;
-      this.goodsOptions.map((e) => {
-        if (row.fGoodsid == e.fId) {
-          goods = e.fName;
-        }
-      });
-      return goods;
-    },
-    fBsdateFormat(row) {
-      if (row.fBsdate) {
-        const dateMat = new Date(row.fBsdate);
-        const year = dateMat.getFullYear();
-        const month = dateMat.getMonth() + 1;
-        const day = dateMat.getDate();
-        const timeFormat = year + "-" + month + "-" + day;
-        return timeFormat;
-      }
-    },
     getForm() {
       getWarehousebills(this.chiId).then((response) => {
         this.form = response.data.warehousebills;
@@ -4166,7 +4365,7 @@ export default {
               return this.$message.error("箱号不能重复");
             }
           }
-          this.$set(this.detailList, this.fixdetaiNum, this.importList)
+          this.$set(this.detailList, this.fixdetaiNum, this.importList);
           this.weightList = false;
         }
       });

+ 5 - 5
src/views/Warehousing/inStock/index.vue

@@ -535,7 +535,7 @@ export default {
       drag: false,
       tableDate: [
         {
-          surface: "0",
+          surface: "1",
           label: "fMblno",
           name: "提单号",
           checked: 0,
@@ -543,14 +543,14 @@ export default {
           fixed: "left",
         },
         {
-          surface: "1",
+          surface: "2",
           label: "createBy",
           name: "制单人",
           checked: 0,
           width: 100,
         },
         {
-          surface: "2",
+          surface: "3",
           label: "fItemsStatus",
           name: "入库状态",
           checked: 0,
@@ -558,7 +558,7 @@ export default {
           width: 100,
         },
         {
-          surface: "3",
+          surface: "4",
           label: "fCorpid",
           name: "货权方",
           checked: 0,
@@ -711,7 +711,7 @@ export default {
     this.getList();
   },
   methods: {
-    //列设置全选
+      //列设置全选
     allChecked() {
       if (this.allCheck == true) {
         this.setRowList.map((e) => {

+ 500 - 334
src/views/Warehousing/outStock/AddOrUpdate.vue

@@ -614,6 +614,79 @@
         </el-row>
       </div>
     </el-form>
+    <el-dialog
+      title="自定义列显示"
+      :visible.sync="showSetting"
+      width="700px"
+      v-dialogDrag
+    >
+      <template slot="title">
+        <div class="avue-crud__dialog__header">
+          <span class="el-dialog__title">
+            <span
+              style="
+                display: inline-block;
+                width: 3px;
+                height: 20px;
+                margin-right: 5px;
+                float: left;
+                margin-top: 2px;
+              "
+            ></span>
+          </span>
+        </div>
+      </template>
+      <div>配置排序列数据(拖动调整顺序)</div>
+      <div style="margin-left: 17px">
+        <el-checkbox
+          v-model="allCheck"
+          label="全选"
+          @change="allChecked"
+        ></el-checkbox>
+      </div>
+      <div style="padding: 4px; display: flex; justify-content: center">
+        <draggable
+          v-model="setRowList"
+          group="site"
+          animation="300"
+          @start="onStart"
+          @end="onEnd"
+          handle=".indraggable"
+        >
+          <transition-group>
+            <div
+              v-for="item in setRowList"
+              :key="item.surface"
+              class="listStyle"
+            >
+              <div style="width: 500px" class="indraggable">
+                <div class="progress" :style="{ width: item.width + 'px' }">
+                  <el-checkbox
+                    :label="item.name"
+                    v-model="item.checked"
+                    :true-label="0"
+                    :false-label="1"
+                    >{{ item.name }}
+                  </el-checkbox>
+                </div>
+              </div>
+              <el-input-number
+                v-model.number="item.width"
+                controls-position="right"
+                :min="1"
+                :max="500"
+                size="mini"
+              ></el-input-number>
+            </div>
+          </transition-group>
+        </draggable>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="showSetting = false">取 消</el-button>
+        <el-button @click="delRow" type="danger">重 置</el-button>
+        <el-button type="primary" @click="save()">确 定</el-button>
+      </span>
+    </el-dialog>
     <el-collapse v-model="collapselist">
       <el-collapse-item name="1">
         <template slot="title">
@@ -682,6 +755,14 @@
                   <el-dropdown-item command="e">劳务确认</el-dropdown-item>
                 </el-dropdown-menu>
               </el-dropdown>
+              <div style="margin: 0 10px">
+                <el-button
+                  icon="el-icon-setting"
+                  size="mini"
+                  circle
+                  @click="showSetting = !showSetting"
+                ></el-button>
+              </div>
             </el-col>
           </el-row>
           <el-table
@@ -695,346 +776,164 @@
             <el-table-column type="selection" width="55" align="center" fixed />
             <el-table-column label="序号" type="index" width="80" fixed />
             <el-table-column
-              prop="fBillstatus"
-              header-align="center"
-              width="150px"
+              v-for="(item, index) in getRowList"
+              :key="index"
+              :label="item.name"
+              :width="item.width"
+              :prop="item.label"
               align="center"
-              fixed
-              label="状态"
+              :fixed="item.fixed"
+              sortable
             >
               <template slot-scope="scope">
-                <span v-if="form.fBusinessType === '5'">
-                  <span v-if="scope.row.fBillstatus == 40">已装箱</span>
-                  <span v-if="scope.row.fBillstatus == 20">待装箱</span>
-                  <span v-if="scope.row.fBillstatus == 30">装箱中</span>
-                  <span v-if="scope.row.fBillstatus == 10">计划</span>
+                <span v-if="item.label == 'fBillstatus'">
+                  <span v-if="form.fBusinessType === '5'">
+                    <span v-if="scope.row.fBillstatus == 40">已装箱</span>
+                    <span v-if="scope.row.fBillstatus == 20">待装箱</span>
+                    <span v-if="scope.row.fBillstatus == 30">装箱中</span>
+                    <span v-if="scope.row.fBillstatus == 10">计划</span>
+                  </span>
+                  <span v-if="form.fBusinessType !== '5'">
+                    <span v-if="scope.row.fBillstatus == 40">已出库</span>
+                    <span v-if="scope.row.fBillstatus == 20">待出库</span>
+                    <span v-if="scope.row.fBillstatus == 30">出库中</span>
+                    <span v-if="scope.row.fBillstatus == 10">计划</span>
+                  </span>
                 </span>
-                <span v-if="form.fBusinessType !== '5'">
-                  <span v-if="scope.row.fBillstatus == 40">已出库</span>
-                  <span v-if="scope.row.fBillstatus == 20">待出库</span>
-                  <span v-if="scope.row.fBillstatus == 30">出库中</span>
-                  <span v-if="scope.row.fBillstatus == 10">计划</span>
+                <span v-else-if="item.label == 'fBsdate'">
+                  <el-date-picker
+                    v-model="scope.row.fBsdate"
+                    style="width: 138px"
+                    :disabled="browseStatus || scope.row.fBillstatus >= 20"
+                    type="date"
+                    value-format="timestamp"
+                    placeholder="业务日期"
+                  >
+                  </el-date-picker>
                 </span>
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="fBsdate"
-              header-align="center"
-              align="center"
-              fixed
-              width="150px"
-              label="出库日期"
-            >
-              <template slot-scope="scope">
-                <el-date-picker
-                  v-model="scope.row.fBsdate"
-                  style="width: 138px"
-                  :disabled="browseStatus || scope.row.fBillstatus >= 20"
-                  type="date"
-                  value-format="timestamp"
-                  placeholder="业务日期"
-                >
-                </el-date-picker>
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="fMblno"
-              header-align="center"
-              align="center"
-              width="140px"
-              label="提单号"
-            />
-            <el-table-column
-              prop="fGoodsid"
-              header-align="center"
-              align="center"
-              width="140px"
-              label="*品名"
-              :formatter="goodsFormat"
-            />
-            <el-table-column
-              prop="fBusinessType"
-              header-align="center"
-              width="140px"
-              align="center"
-              label="*货物属性"
-            >
-              <template slot-scope="scope">
-                <el-select
-                  v-model="scope.row.fBusinessType"
-                  filterable
-                  disabled
-                  placeholder="请选择商品属性"
-                >
-                  <el-option
-                    v-for="(item, index) in fStorageTypeOptions"
-                    :key="index.dictValue"
-                    :label="item.dictLabel"
-                    :value="item.dictValue"
+                <span v-else-if="item.label == 'fGoodsid'">
+                  {{ scope.row.fGoodsid }}
+                </span>
+                <span v-else-if="item.label == 'fBusinessType'">
+                  <el-select
+                    v-model="scope.row.fBusinessType"
+                    filterable
+                    disabled
+                    placeholder="请选择商品属性"
+                  >
+                    <el-option
+                      v-for="(item, index) in fStorageTypeOptions"
+                      :key="index.dictValue"
+                      :label="item.dictLabel"
+                      :value="item.dictValue"
+                    />
+                  </el-select>
+                </span>
+                <span v-else-if="item.label == 'fQty'">
+                  <el-input
+                    @change="qtyChange(scope.row)"
+                    v-model="scope.row.fQty"
+                    :disabled="browseStatus || scope.row.fBillstatus == 40"
+                    placeholder="出库件数"
                   />
-                </el-select>
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="fMarks"
-              header-align="center"
-              align="center"
-              width="140px"
-              label="*属性详情"
-            />
-
-            <el-table-column
-              prop="fWarehouseInformation"
-              header-align="center"
-              width="240px"
-              align="center"
-              label="*库区"
-            />
-            <el-table-column
-              prop="fPlanqty"
-              header-align="center"
-              align="center"
-              width="180px"
-              label="*结余库存"
-            />
-            <el-table-column
-              prop="fPlangrossweight"
-              header-align="center"
-              align="center"
-              width="180px"
-              label="*结余毛重(kg)"
-            />
-            <el-table-column
-              prop="fPlannetweight"
-              header-align="center"
-              align="center"
-              width="180px"
-              label="*结余净重(kg)"
-            />
-            <el-table-column
-              prop="fQty"
-              header-align="center"
-              width="180px"
-              align="center"
-              label="*出库件数"
-            >
-              <template slot-scope="scope">
-                <el-input
-                  @change="qtyChange(scope.row)"
-                  v-model="scope.row.fQty"
-                  :disabled="browseStatus || scope.row.fBillstatus == 40"
-                  placeholder="出库件数"
-                />
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="fGrossweight"
-              header-align="center"
-              width="180px"
-              align="center"
-              label="*出库毛重(kg)"
-            >
-              <template slot-scope="scope">
-                <el-input
-                  :disabled="browseStatus || scope.row.fBillstatus == 40"
-                  v-model="scope.row.fGrossweight"
-                  @change="changeOutStock(scope.row)"
-                  placeholder="出库毛重"
-                />
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="fNetweight"
-              header-align="center"
-              width="180px"
-              align="center"
-              label="*出库净重(kg)"
-            >
-              <template slot-scope="scope">
-                <el-input
-                  v-model="scope.row.fNetweight"
-                  :disabled="browseStatus || scope.row.fBillstatus == 40"
-                  @change="changeOutStock(scope.row)"
-                  placeholder="出库净重"
-                />
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="fPackagespecs"
-              header-align="center"
-              width="180px"
-              align="center"
-              label="*包装规格"
-            >
-              <template slot-scope="scope">
-                <el-input
-                  v-model="scope.row.fPackagespecs"
-                  :disabled="browseStatus || scope.row.fBillstatus >= 20"
-                  placeholder="包装规格"
-                />
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="fCntrtype"
-              header-align="center"
-              align="center"
-              width="140px"
-              label="箱型"
-            >
-              <template slot-scope="scope">
-                <el-input
-                  v-model="scope.row.fCntrtype"
-                  :disabled="browseStatus || scope.row.fBillstatus >= 20"
-                  placeholder="箱型"
-                />
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="fCntqty"
-              header-align="center"
-              align="center"
-              width="140px"
-              label="箱量"
-            >
-              <template slot-scope="scope">
-                <el-input
-                  oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
-                  v-model="scope.row.fCntqty"
-                  placeholder="箱量"
-                  :disabled="browseStatus || scope.row.fBillstatus >= 20"
-                />
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="fCntrno"
-              header-align="center"
-              width="150px"
-              align="center"
-              label="箱号"
-            >
-            </el-table-column>
-            <el-table-column
-              prop="fGoodsval"
-              header-align="center"
-              width="150px"
-              align="center"
-              label="货值"
-            >
-              <template slot-scope="scope">
-                <el-input
-                  v-model="scope.row.fGoodsval"
-                  placeholder="货值"
-                  :disabled="browseStatus || scope.row.fBillstatus >= 20"
-                />
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="fTruckno"
-              header-align="center"
-              width="150px"
-              align="center"
-              label="*车号"
-            >
-              <template slot-scope="scope">
-                <el-input
-                  v-model="scope.row.fTruckno"
-                  placeholder="车号"
-                  :disabled="browseStatus || scope.row.fBillstatus >= 40"
-                />
-              </template>
-            </el-table-column>
-
-            <el-table-column
-              prop="fDriverName"
-              header-align="center"
-              width="130px"
-              align="center"
-              label="司机名"
-            >
-              <template slot-scope="scope">
-                <el-input
-                  v-model="scope.row.fDriverName"
-                  placeholder="司机名"
-                  :disabled="browseStatus || scope.row.fBillstatus >= 20"
-                />
-              </template>
-            </el-table-column>
-
-            <el-table-column
-              prop="fDriverTel"
-              header-align="center"
-              width="130px"
-              align="center"
-              label="司机电话"
-            >
-              <template slot-scope="scope">
-                <el-input
-                  v-model="scope.row.fDriverTel"
-                  placeholder="司机电话"
-                  :disabled="browseStatus || scope.row.fBillstatus >= 20"
-                />
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="fDriverIdCar"
-              header-align="center"
-              width="200px"
-              align="center"
-              label="司机身份证"
-            >
-              <template slot-scope="scope">
-                <el-input
-                  v-model="scope.row.fDriverIdCar"
-                  placeholder="司机身份证"
-                  :disabled="browseStatus || scope.row.fBillstatus >= 20"
-                />
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="fIsPass"
-              header-align="center"
-              width="130px"
-              align="center"
-              label="是否放行"
-            >
-              <template slot-scope="scope">
-                <el-select
-                  v-model="scope.row.fIsPass"
-                  placeholder="是否放行"
-                  :disabled="browseStatus || scope.row.fBillstatus == 40"
-                  style="width: 80%"
-                >
-                  <el-option
-                    v-for="(item, index) in releaseList"
-                    :key="index.dictValue"
-                    :label="item.dictLabel"
-                    :value="item.dictValue"
+                </span>
+                <span v-else-if="item.label == 'fGrossweight'">
+                  <el-input
+                    :disabled="browseStatus || scope.row.fBillstatus == 40"
+                    v-model="scope.row.fGrossweight"
+                    @change="changeOutStock(scope.row)"
+                    placeholder="出库毛重"
                   />
-                </el-select>
-              </template>
-            </el-table-column>
-            <el-table-column
-              prop="fSerialNumber"
-              header-align="center"
-              width="160px"
-              align="center"
-              label="流水号"
-            >
-            </el-table-column>
-            <el-table-column
-              prop="remark"
-              header-align="center"
-              width="150px"
-              align="center"
-              label="备注"
-            >
-              <template slot-scope="scope">
-                <el-input
-                  v-model="scope.row.remark"
-                  placeholder="备注"
-                  :disabled="browseStatus"
-                  show-word-limit
-                />
+                </span>
+                <span v-else-if="item.label == 'fNetweight'">
+                  <el-input
+                    v-model="scope.row.fNetweight"
+                    :disabled="browseStatus || scope.row.fBillstatus == 40"
+                    @change="changeOutStock(scope.row)"
+                    placeholder="出库净重"
+                  />
+                </span>
+                <span v-else-if="item.label == 'fPackagespecs'">
+                  <el-input
+                    v-model="scope.row.fPackagespecs"
+                    :disabled="browseStatus || scope.row.fBillstatus >= 20"
+                    placeholder="包装规格"
+                  />
+                </span>
+                <span v-else-if="item.label == 'fCntrtype'">
+                  <el-input
+                    v-model="scope.row.fCntrtype"
+                    :disabled="browseStatus || scope.row.fBillstatus >= 20"
+                    placeholder="箱型"
+                  />
+                </span>
+                <span v-else-if="item.label == 'fCntqty'">
+                  <el-input
+                    oninput='this.value=this.value.replace(/[^\-?\d.]/g,"").replace(/^(\-)*(\d+)\.(\d\d).*$/, "$1$2.$3")'
+                    v-model="scope.row.fCntqty"
+                    placeholder="箱量"
+                    :disabled="browseStatus || scope.row.fBillstatus >= 20"
+                  />
+                </span>
+                <span v-else-if="item.label == 'fGoodsval'">
+                  <el-input
+                    v-model="scope.row.fGoodsval"
+                    placeholder="货值"
+                    :disabled="browseStatus || scope.row.fBillstatus >= 20"
+                  />
+                </span>
+                <span v-else-if="item.label == 'fTruckno'">
+                  <el-input
+                    v-model="scope.row.fTruckno"
+                    placeholder="车号"
+                    :disabled="browseStatus || scope.row.fBillstatus >= 40"
+                  />
+                </span>
+                <span v-else-if="item.label == 'fDriverName'">
+                  <el-input
+                    v-model="scope.row.fDriverName"
+                    placeholder="司机名"
+                    :disabled="browseStatus || scope.row.fBillstatus >= 20"
+                  />
+                </span>
+                <span v-else-if="item.label == 'fDriverTel'">
+                  <el-input
+                    v-model="scope.row.fDriverTel"
+                    placeholder="司机电话"
+                    :disabled="browseStatus || scope.row.fBillstatus >= 20"
+                  />
+                </span>
+                <span v-else-if="item.label == 'fDriverIdCar'">
+                  <el-input
+                    v-model="scope.row.fDriverIdCar"
+                    placeholder="司机身份证"
+                    :disabled="browseStatus || scope.row.fBillstatus >= 20"
+                  />
+                </span>
+                <span v-else-if="item.label == 'fIsPass'">
+                  <el-select
+                    v-model="scope.row.fIsPass"
+                    placeholder="是否放行"
+                    :disabled="browseStatus || scope.row.fBillstatus == 40"
+                    style="width: 80%"
+                  >
+                    <el-option
+                      v-for="(item, index) in releaseList"
+                      :key="index.dictValue"
+                      :label="item.dictLabel"
+                      :value="item.dictValue"
+                    />
+                  </el-select>
+                </span>
+                <span v-else-if="item.label == 'remark'">
+                  <el-input
+                    v-model="scope.row.remark"
+                    placeholder="备注"
+                    :disabled="browseStatus"
+                    show-word-limit
+                  />
+                </span>
+                <span v-else>{{ scope.row[item.label] }}</span>
               </template>
             </el-table-column>
             <el-table-column
@@ -2685,6 +2584,8 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import UploadFile from "@/components/Uploadfile";
 import Cookies from "js-cookie";
 import { getToken } from "@/utils/auth";
+import { addSet, select, resetModule } from "@/api/system/set";
+import draggable from "vuedraggable";
 export default {
   name: "inStock",
   props: {
@@ -2702,6 +2603,7 @@ export default {
     Treeselect,
     AddOrUpdate,
     ApprovalComments,
+    draggable
   },
   data() {
     return {
@@ -2822,9 +2724,197 @@ export default {
         fTruckno: null,
       },
       stockoi: null,
+      drag: false,
+      tableDate: [
+        {
+          surface: "0",
+          label: "fBillstatus",
+          name: "状态",
+          checked: 0,
+          width: 80,
+          fixed: "left",
+        },
+        {
+          surface: "1",
+          label: "fBsdate",
+          name: "出库日期",
+          checked: 0,
+          width: 200,
+          fixed: "left",
+        },
+        {
+          surface: "2",
+          label: "fMblno",
+          name: "提单号",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "3",
+          label: "fGoodsid",
+          name: "品名",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "4",
+          label: "fBusinessType",
+          name: "货物属性",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "5",
+          label: "fMarks",
+          name: "属性详情",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "6",
+          label: "fWarehouseInformation",
+          name: "库区",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "7",
+          label: "fPlanqty",
+          name: "结余库存",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "8",
+          label: "fPlangrossweight",
+          name: "结余毛重(kg)",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "9",
+          label: "fPlannetweight",
+          name: "结余净重(kg)",
+          checked: 0,
+          width: 100,
+        },
+
+        {
+          surface: "10",
+          label: "fQty",
+          name: "出库件数",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "11",
+          label: "fGrossweight",
+          name: "出库毛重(kg)",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "12",
+          label: "fNetweight",
+          name: "出库净重(kg)",
+          checked: 0,
+          width: 100,
+        },
+
+        {
+          surface: "13",
+          label: "fPackagespecs",
+          name: "包装规格",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "14",
+          label: "fCntrtype",
+          name: "箱型",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "15",
+          label: "fCntqty",
+          name: "箱量",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "16",
+          label: "fCntrno",
+          name: "箱号",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "17",
+          label: "fGoodsval",
+          name: "货值",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "18",
+          label: "fTruckno",
+          name: "车号",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "19",
+          label: "fDriverName",
+          name: "司机名称",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "20",
+          label: "fDriverTel",
+          name: "司机电话",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "21",
+          label: "fDriverIdCar",
+          name: "司机身份证",
+          checked: 0,
+          width: 150,
+        },
+        {
+          surface: "22",
+          label: "fIsPass",
+          name: "是否放行",
+          checked: 0,
+          width: 150,
+        },
+        {
+          surface: "23",
+          label: "fSerialNumber",
+          name: "流水号",
+          checked: 0,
+          width: 100,
+        },
+        {
+          surface: "24",
+          label: "remark",
+          name: "备注",
+          checked: 0,
+          width: 100,
+        },
+      ],
+      setRowList: [],
+      getRowList: [],
+      allCheck: false,
+      showSetting: false,
     };
   },
   created() {
+    this.setRowList = this.tableDate;
+    this.getRowList = this.tableDate;
     this.getDicts("data_stltype_type").then((response) => {
       this.fStltypeOptions = response.data;
     });
@@ -2886,6 +2976,7 @@ export default {
     });
     this.company = localStorage.getItem("companyName");
     this.queryUser();
+    this.getRow();
   },
   filters: {
     fStorageFormat(row) {
@@ -2917,7 +3008,82 @@ export default {
       this.CntrTable = [];
       this.getForm();
     },
-        // 修改毛重净重
+    //列设置全选
+    allChecked() {
+      if (this.allCheck == true) {
+        this.setRowList.map((e) => {
+          return (e.checked = 0);
+        });
+      } else {
+        this.setRowList.map((e) => {
+          return (e.checked = 1);
+        });
+      }
+    },
+    //查询列数据
+    getRow() {
+      let that = this;
+      this.data = {
+        tableName: "出库明细",
+        userId: Cookies.get("userName"),
+      };
+      select(this.data).then((res) => {
+        if (res.data.length != 0) {
+          this.getRowList = res.data.filter((e) => e.checked == 0);
+          this.setRowList = res.data;
+          this.setRowList = this.setRowList.reduce((res, item) => {
+            res.push({
+              surface: item.surface,
+              label: item.label,
+              name: item.name,
+              checked: item.checked,
+              width: item.width,
+              fixed: item.fixed,
+            });
+            return res;
+          }, []);
+        }
+      });
+    },
+    //重置列表
+    delRow() {
+      this.data = {
+        tableName: "出库明细",
+        userId: Cookies.get("userName"),
+      };
+      resetModule(this.data).then((res) => {
+        if (res.code == 200) {
+          this.showSetting = false;
+          this.setRowList = this.$options.data().tableDate;
+          this.getRowList = this.$options.data().tableDate;
+        }
+      });
+    },
+    //保存列设置
+    save() {
+      this.showSetting = false;
+      this.data = {
+        tableName: "出库明细",
+        userId: Cookies.get("userName"),
+        sysTableSetList: this.setRowList,
+      };
+      addSet(this.data).then((res) => {
+        if (res.code == 200) {
+          this.showSetting = false;
+          this.getRowList = this.setRowList.filter((e) => e.checked == 0);
+          console.log(this.tableDate);
+        }
+      });
+    },
+    //开始拖拽事件
+    onStart() {
+      this.drag = true;
+    },
+    //拖拽结束事件
+    onEnd() {
+      this.drag = false;
+    },
+    // 修改毛重净重
     changeOutStock(row) {
       let fNetweight = 0;
       let fGrossweight = 0;

+ 2 - 1
src/views/finance/contrast/index.vue

@@ -2409,7 +2409,8 @@ export default {
                 this.$message.success("操作成功")
                 this.doNot = true;
                 this.notChange = true;
-                this.queryParams.fBillstatus = '4'
+                this.$set(this.queryParams,'fBillstatus',4)
+                // this.queryParams.fBillstatus = '4'
                 if (this.Operator == this.Lander) {
                   this.disappear = false;
                 }