瀏覽代碼

Merge branch 'dev' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend into dengfei

695593266@qq.com 11 月之前
父節點
當前提交
648d9751e7
共有 3 個文件被更改,包括 288 次插入253 次删除
  1. 255 174
      src/components/common/seekPage.vue
  2. 32 78
      src/views/bpm/model/components/modelSearch.vue
  3. 1 1
      src/views/bpm/model/index.vue

+ 255 - 174
src/components/common/seekPage.vue

@@ -1,200 +1,281 @@
 <template>
-    <div class="index_box">
-        <el-form label-width="90px" :inline="true">
-            <el-form-item v-for="(item, i) in seekList" :key="i">
-                <el-form-item :label="item.label" :label-width="item.labelWidth + 'px'" v-if="i <= 2">
-                    <!-- input 输入 -->
-                    <div>
-                        <div v-if="item.type == 'input'">
-                            <el-input clearable v-model="defaultWhere[item.value]"
-                                :placeholder="item.placeholder || '请输入内容'"
-                                :style="{ width: item.width ? item.width + 'px' : '220px' }" />
-                        </div>
-                        <div v-if="item.type == 'select'">
-                            <el-select clearable v-model="defaultWhere[item.value]"
-                                :multiple="item.multiple ? item.multiple : false"
-                                :filterable="item.filterable ? item.filterable : true"
-                                :placeholder="item.placeholder || '请输入内容'"
-                                :style="{ width: item.width ? item.width + 'px' : '220px' }"
-                                >
-                                <el-option v-for="(op, i) in item.planList" :label="op.label"
-                                    :value="op.value" :key="i"></el-option>
-                            </el-select>
-                        </div>
-                        <div v-if="item.type == 'date'">
-                            <el-date-picker v-model="defaultWhere[item.value]" @visible-change="change"
-                                :type="item.dateType || 'daterange'" range-separator="至" start-placeholder="开始日期"
-                                end-placeholder="结束日期" value-format="yyyy-MM-dd HH:mm:ss"
-                                :style="{ width: item.width ? item.width + 'px' : '220px' }">
-
-
-                            </el-date-picker>
-                        </div>
-                    </div>
-                </el-form-item>
-
-            </el-form-item>
-
-            <el-form-item>
-                <el-dropdown ref="dropdownref" trigger="click" :hide-on-click="false" v-model="dropdownVisible">
-                    <div v-if="seekList.length > 3">
-                        <span class="el-dropdown-link">
-                            更多选项<i class="el-icon-arrow-down el-icon--right"></i>
-                        </span>
-                        <el-dropdown-menu slot="dropdown" >
-                            <div class="padding">
-                                <el-form label-position="left">
-                                    <el-form-item v-for="(item, i) in deboListRow" :key="i" :inline="true"
-                                        label-position="left">
-                                        <el-form-item :label-width="item.labelWidth ? item.labelWidth : '90' + 'px'"
-                                            :inline="true" :label="item.label">
-                                            <div v-if="item.type == 'input'">
-                                                <el-input clearable v-model="defaultWhere[item.value]"
-                                                    :placeholder="item.placeholder || '请输入内容'"
-                                                    :style="{ width: item.width ? item.width + 'px' : '220px' }" />
-                                            </div>
-                                            <div v-if="item.type == 'select'">
-                                                <el-select clearable v-model="defaultWhere[item.value]"
-                                                    :multiple="item.multiple ? item.multiple : false"
-                                                    :filterable="item.filterable ? item.filterable : true"
-                                                    :placeholder="item.placeholder || '请输入内容'"
-                                                    :style="{ width: item.width ? item.width + 'px' : '220px' }"
-                                                    @visible-change="change" @change="handerChange">
-                                                    <el-option v-for="(op, i) in item.planList" :label="op.label"
-                                                        :value="op.value" :key="i"></el-option>
-                                                </el-select>
-                                            </div>
-
-                                            <div v-if="item.type == 'date'">
-                                                <el-date-picker v-model="defaultWhere[item.value]"
-                                                    @blur="change" :type="item.dateType || 'daterange'"
-                                                    range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"
-                                                    value-format="yyyy-MM-dd HH:mm:ss"
-                                                    
-                                                    :style="{ width: item.width ? item.width + 'px' : '220px' }">
-
-
-                                                </el-date-picker>
-                                            </div>
-
-                                        </el-form-item>
-                                    </el-form-item>
-                                </el-form>
-                            </div>
-
-                        </el-dropdown-menu>
-                    </div>
-                </el-dropdown>
-
-
-            </el-form-item>
-
-            <el-form-item>
-                <el-button type="primary" icon="el-icon-search" class="ele-btn-icon" @click="search">
-                    查询
-                </el-button>
-                <el-button @click="reset" icon="el-icon-refresh-left" type="primary">重置</el-button>
-            </el-form-item>
-        </el-form>
-
-
-    </div>
+  <div class="index_box">
+    <el-form label-width="90px" :inline="true">
+      <el-form-item v-for="(item, i) in seekList" :key="i">
+        <el-form-item
+          :label="item.label"
+          :label-width="item.labelWidth + 'px'"
+          v-if="i <= 2"
+        >
+          <!-- input 输入 -->
+          <div>
+            <div v-if="item.type == 'input'">
+              <el-input
+                clearable
+                v-model="defaultWhere[item.value]"
+                :placeholder="item.placeholder || '请输入内容'"
+                :style="{ width: item.width ? item.width + 'px' : '220px' }"
+              />
+            </div>
+            <div v-if="item.type == 'select'">
+              <el-select
+                clearable
+                v-model="defaultWhere[item.value]"
+                :multiple="item.multiple ? item.multiple : false"
+                :filterable="item.filterable ? item.filterable : true"
+                :placeholder="item.placeholder || '请选择'"
+                :style="{ width: item.width ? item.width + 'px' : '220px' }"
+              >
+                <el-option
+                  v-for="(op, i) in item.planList"
+                  :label="op.label"
+                  :value="op.value"
+                  :key="i"
+                ></el-option>
+              </el-select>
+            </div>
+            <div v-if="item.type == 'selectTree'">
+              <ele-tree-select
+                clearable
+                ref="processTypeRef"
+                filterable
+                :data="item.planList"
+                v-model="defaultWhere[item.value]"
+                :childrenKey="item.childrenKey || 'children'"
+                valueKey="id"
+                labelKey="name"
+                :placeholder="item.placeholder || '请选择'"
+                default-expand-all
+                :style="{ width: item.width ? item.width + 'px' : '220px' }"
+              />
+            </div>
+            <div v-if="item.type == 'date'">
+              <el-date-picker
+                v-model="defaultWhere[item.value]"
+                @visible-change="change"
+                :type="item.dateType || 'daterange'"
+                range-separator="至"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                :style="{ width: item.width ? item.width + 'px' : '220px' }"
+              >
+              </el-date-picker>
+            </div>
+          </div>
+        </el-form-item>
+      </el-form-item>
+
+      <el-form-item>
+        <el-dropdown
+          ref="dropdownref"
+          trigger="click"
+          :hide-on-click="false"
+          v-model="dropdownVisible"
+        >
+          <div v-if="seekList.length > 3">
+            <span class="el-dropdown-link">
+              更多选项<i class="el-icon-arrow-down el-icon--right"></i>
+            </span>
+            <el-dropdown-menu slot="dropdown">
+              <div class="padding">
+                <el-form label-position="left">
+                  <el-form-item
+                    v-for="(item, i) in deboListRow"
+                    :key="i"
+                    :inline="true"
+                    label-position="left"
+                  >
+                    <el-form-item
+                      :label-width="
+                        item.labelWidth ? item.labelWidth : '90' + 'px'
+                      "
+                      :inline="true"
+                      :label="item.label"
+                    >
+                      <div v-if="item.type == 'input'">
+                        <el-input
+                          clearable
+                          v-model="defaultWhere[item.value]"
+                          :placeholder="item.placeholder || '请输入内容'"
+                          :style="{
+                            width: item.width ? item.width + 'px' : '220px'
+                          }"
+                        />
+                      </div>
+                      <div v-if="item.type == 'select'">
+                        <el-select
+                          clearable
+                          v-model="defaultWhere[item.value]"
+                          :multiple="item.multiple ? item.multiple : false"
+                          :filterable="item.filterable ? item.filterable : true"
+                          :placeholder="item.placeholder || '请选择'"
+                          :style="{
+                            width: item.width ? item.width + 'px' : '220px'
+                          }"
+                          @visible-change="change"
+                          @change="handerChange"
+                        >
+                          <el-option
+                            v-for="(op, i) in item.planList"
+                            :label="op.label"
+                            :value="op.value"
+                            :key="i"
+                          ></el-option>
+                        </el-select>
+                      </div>
+                      <div v-if="item.type == 'selectTree'">
+                        <ele-tree-select
+                          clearable
+                          ref="processTypeRef"
+                          filterable
+                          :data="item.planList"
+                          v-model="defaultWhere[item.value]"
+                          :childrenKey="item.childrenKey || 'children'"
+                          valueKey="id"
+                          labelKey="name"
+                          :placeholder="item.placeholder || '请选择'"
+                          default-expand-all
+                          :style="{
+                            width: item.width ? item.width + 'px' : '220px'
+                          }"
+                        />
+                      </div>
+                      <div v-if="item.type == 'date'">
+                        <el-date-picker
+                          v-model="defaultWhere[item.value]"
+                          @blur="change"
+                          :type="item.dateType || 'daterange'"
+                          range-separator="至"
+                          start-placeholder="开始日期"
+                          end-placeholder="结束日期"
+                          value-format="yyyy-MM-dd HH:mm:ss"
+                          :style="{
+                            width: item.width ? item.width + 'px' : '220px'
+                          }"
+                        >
+                        </el-date-picker>
+                      </div>
+                    </el-form-item>
+                  </el-form-item>
+                </el-form>
+              </div>
+            </el-dropdown-menu>
+          </div>
+        </el-dropdown>
+      </el-form-item>
+
+      <el-form-item>
+        <el-button
+          type="primary"
+          icon="el-icon-search"
+          class="ele-btn-icon"
+          @click="search"
+        >
+          查询
+        </el-button>
+        <el-button @click="reset" icon="el-icon-refresh-left" type="primary"
+          >重置</el-button
+        >
+      </el-form-item>
+    </el-form>
+  </div>
 </template>
 
 <script>
+  import { copyObj } from '@/utils/util';
 
-let defaultWhere = {};
-export default {
+  export default {
     props: {
-        seekList: {
-            type: Array,
-            default: () => []
-        }
+      seekList: {
+        type: Array,
+        default: () => []
+      },
+      keyValue: ''
     },
 
-    components: {
-
-    },
+    components: {},
     watch: {
-        seekList: {
-            handler(val) {
-
-                val.forEach(item => {
-
-                    defaultWhere[item.value] = null;
-
-                })
-
-                this.$nextTick(() => {
-
-                    if (Array.isArray(val) && val.length <= 3) {
-                        this.seekListRow = val
-                    } else if (Array.isArray(val) && val.length >= 3) {
-                        this.seekListRow = val.slice(0, 3);
-                        this.deboListRow = val.slice(3);
-                    }
-                })
-
-            },
-            deep: true,
-            immediate: true,
-        }
+      seekList: {
+        handler(val) {
+          this.$nextTick(() => {
+            if (Array.isArray(val) && val.length <= 3) {
+              this.seekListRow = val;
+            } else if (Array.isArray(val) && val.length >= 3) {
+              this.seekListRow = val.slice(0, 3);
+              this.deboListRow = val.slice(3);
+            }
+          });
+        },
+        deep: true,
+        immediate: true
+      },
+      defaultWhere: {
+        handler(val) {
+          if (this.keyValue) {
+            sessionStorage[this.keyValue] = JSON.stringify(val);
+            if (Object.keys(val).length === 0) {
+              sessionStorage.removeItem(this.keyValue);
+            }
+          }
+        },
+        deep: true
+        // immediate: true
+      }
     },
 
     data() {
+      return {
+        defaultWhere: {},
+        dropdownVisible: true,
 
-
-        return {
-            defaultWhere: {},
-            dropdownVisible: true,
-
-            deboListRow: [],
-            seekListRow: []
-        }
+        deboListRow: [],
+        seekListRow: []
+      };
     },
 
     computed: {
-        info() {
-            return this.$store.state.user.info;
-        },
-
+      info() {
+        return this.$store.state.user.info;
+      }
     },
 
-    created() {
-
-
+    mounted() {
+      let whereObj = sessionStorage[this.keyValue];
+      if (whereObj) {
+        this.defaultWhere = JSON.parse(whereObj);
+        this.search();
+      }
     },
     methods: {
-
-        change(visible) {
-           
-            this.dropdownVisible = visible;
-            this.$refs.dropdownref.show()
-        },
-        handerChange() {
-            this.$refs.dropdownref.show()
-        },
-
-        search() {
-            this.$emit('search', this.defaultWhere);
-        },
-        // 重置
-        reset() {
-            this.defaultWhere = {};
-            this.search();
-        }
-
-        //  折叠悬浮中样式调整
-    },
-}
+      change(visible) {
+        this.dropdownVisible = visible;
+        this.$refs.dropdownref.show();
+      },
+      handerChange() {
+        this.$refs.dropdownref.show();
+      },
+
+      search() {
+        this.$emit('search', this.defaultWhere);
+      },
+      // 重置
+      reset() {
+        this.defaultWhere = {};
+        this.search();
+      }
+
+      //  折叠悬浮中样式调整
+    }
+  };
 </script>
 
 <style scoped>
-.index_box {
+  .index_box {
     display: flex;
-}
+  }
 
-.padding {
+  .padding {
     padding: 20px;
-}
-</style>
+  }
+</style>

+ 32 - 78
src/views/bpm/model/components/modelSearch.vue

@@ -1,94 +1,48 @@
 <!-- 搜索表单 -->
 <template>
-  <el-form
-    label-width="100px"
-    class="ele-form-search"
-    @keyup.enter.native="search(true)"
-    @submit.native.prevent
-  >
-    <el-row :gutter="15">
-      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-        <el-form-item label="流程分类:" prop="queryParams.processTypeId">
-          <ele-tree-select
-            clearable
-            ref="processTypeRef"
-            filterable
-            :data="processTypeList"
-            v-model="queryParams.processTypeId"
-            childrenKey="children"
-            valueKey="id"
-            labelKey="name"
-            placeholder="请选择"
-            default-expand-all
-          />
-        </el-form-item>
-      </el-col>
-      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-        <el-form-item label="流程标识:" prop="queryParams.key">
-          <el-input
-            clearable
-            v-model.trim="queryParams.key"
-          ></el-input>
-        </el-form-item>
-      </el-col>
-      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-        <el-form-item label="流程名称:" prop="queryParams.name">
-          <el-input
-            clearable
-            v-model="queryParams.name"
-          ></el-input>
-        </el-form-item>
-      </el-col>
-      <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
-        <div class="ele-form-actions">
-          <el-button
-            type="primary"
-            icon="el-icon-search"
-            class="ele-btn-icon"
-            @click="search(true)"
-          >
-            查询
-          </el-button>
-          <el-button @click="reset">重置</el-button>
-        </div>
-      </el-col>
-    </el-row>
-  </el-form>
+  <seekPage :seekList="seekList" :formLength="3" @search="search" :keyValue="'wt-bpm-model-search'"></seekPage>
 </template>
+
 <script>
   export default {
-    props:{
-      processTypeList:Array
+    props: {
+      processTypeList: Array
     },
-    data () {
-      // 默认表单数据
-      const defaultParams = {
-        key: '',
-        name: ''
-      };
-      return {
-        defaultParams,
-        // 表单数据
-        queryParams: { ...defaultParams }
-      };
+    data() {
+      return {};
     },
     computed: {
-      // 是否开启响应式布局
-      styleResponsive () {
-        return this.$store.state.theme.styleResponsive;
+      // 表格列配置
+      seekList() {
+        return [
+          {
+            label: '流程分类:',
+            value: 'processTypeId',
+            type: 'selectTree',
+            planList: this.processTypeList
+          },
+          {
+            label: '流程标识:',
+            value: 'key',
+            type: 'input',
+            placeholder: ''
+          },
+
+          {
+            label: '流程名称:',
+            value: 'name',
+            type: 'input',
+            placeholder: ''
+          }
+        ];
       }
     },
     methods: {
       /* 搜索 */
-      search (reset) {
-        this.$emit('search', {reset: reset,
-          ...this.queryParams
+      search(e) {
+        this.$emit('search', {
+          ...e
         });
-      },
-      /*  重置 */
-      reset () {
-        this.queryParams = { ...this.defaultParams };
-        this.search(true);
       }
     }
   };

+ 1 - 1
src/views/bpm/model/index.vue

@@ -129,7 +129,7 @@ import {getProduceTreeByCode} from "@/api/bpm/processClass";
 import {getTreeByPid} from "@/api/classifyManage";
 export default {
   mixins: [dictMixins, tabMixins],
-  name: 'BpmModel',
+  // name: 'BpmModel',
   components: {
     modelSearch, Pagination, taskAssignRuleDialog,
   },