{"remainingRequest":"D:\\jenkins\\workspace\\sfz-lh-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\sfz-lh-fvue\\src\\views\\Normal\\components\\superSearch.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\sfz-lh-fvue\\src\\views\\Normal\\components\\superSearch.vue","mtime":1700553626949},{"path":"D:\\jenkins\\workspace\\sfz-lh-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\sfz-lh-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\sfz-lh-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport lodash from 'lodash'\r\n\r\nexport default {\r\n name: 'SuperSearch',\r\n props: {\r\n // 搜索表单\r\n searchForm: {\r\n default() {\r\n return {}\r\n },\r\n type: Object,\r\n },\r\n // 搜索配置项\r\n basisOption: {\r\n default() {\r\n return [\r\n {\r\n itemLabel: '分类',\r\n itemProp: 'type',\r\n itemType: 'radio',\r\n searchType: 'basic',\r\n labelWidth: '70px',\r\n option: [\r\n {label: '分类1', value: '0'},\r\n {label: '分类2', value: '1'},\r\n {label: '分类3', value: '2'},\r\n {label: '分类4', value: '3'},\r\n ],\r\n },\r\n {\r\n itemLabel: '部门',\r\n itemProp: 'department',\r\n itemType: 'radio',\r\n searchType: 'basic',\r\n labelWidth: '70px',\r\n option: [\r\n {label: '部门1', value: '0'},\r\n {label: '部门2', value: '1'},\r\n {label: '部门3', value: '2'},\r\n {label: '部门4', value: '3'},\r\n ],\r\n },\r\n {\r\n itemLabel: '品质',\r\n itemProp: 'quality1',\r\n itemType: 'checkbox',\r\n searchType: 'basic',\r\n labelWidth: '70px',\r\n option: [\r\n {label: '品质1', value: '0'},\r\n {label: '品质2', value: '1'},\r\n {label: '品质3', value: '2'},\r\n {label: '品质4', value: '3'},\r\n ],\r\n },\r\n {\r\n itemLabel: '性格',\r\n itemProp: 'quality',\r\n itemType: 'checkbox',\r\n searchType: 'basic',\r\n labelWidth: '70px',\r\n option: [\r\n {label: '性格1', value: '0'},\r\n {label: '性格2', value: '1'},\r\n {label: '性格3', value: '2'},\r\n {label: '性格4', value: '3'},\r\n {label: '性格5', value: '4'},\r\n ],\r\n },\r\n {\r\n itemLabel: '部门部门部门',\r\n itemProp: 'department1',\r\n itemType: 'radio',\r\n searchType: 'basic',\r\n labelWidth: '160px',\r\n option: [\r\n {label: '部门1', value: '0'},\r\n {label: '部门2', value: '1'},\r\n {label: '部门3', value: '2'},\r\n {label: '部门4', value: '3'},\r\n ],\r\n },\r\n {\r\n itemLabel: '姓名',\r\n itemProp: 'name',\r\n itemType: 'input',\r\n labelWidth: '90px',\r\n searchType: 'advance',\r\n },\r\n {\r\n itemLabel: '年龄',\r\n itemProp: 'age',\r\n itemType: 'input',\r\n labelWidth: '90px',\r\n searchType: 'advance',\r\n },\r\n {\r\n itemLabel: '性别',\r\n itemProp: 'gender',\r\n itemType: 'input',\r\n labelWidth: '90px',\r\n searchType: 'advance',\r\n },\r\n {\r\n itemLabel: '模糊匹配',\r\n itemProp: 'matching',\r\n itemType: 'input',\r\n labelWidth: '90px',\r\n searchType: 'advance',\r\n },\r\n // {\r\n // itemLabel: '性别',\r\n // itemProp: 'gender',\r\n // itemType: 'input',\r\n // labelWidth: '90px',\r\n // searchType: 'advance'\r\n // },\r\n // {\r\n // itemLabel: '模糊匹配',\r\n // itemProp: 'matching',\r\n // itemType: 'input',\r\n // labelWidth: '90px',\r\n // searchType: 'advance'\r\n // }\r\n ]\r\n },\r\n type: Array,\r\n },\r\n },\r\n data() {\r\n return {\r\n search: {\r\n basicSearchArr: [], // 基础搜索\r\n advanceSearchArr: [], // 高级搜索\r\n },\r\n isShow: false,\r\n cloneForm: {},\r\n }\r\n },\r\n watch: {\r\n search: {\r\n handler(searchArr) {\r\n Object.keys(searchArr).forEach((key) => {\r\n searchArr[key].forEach((i) =>\r\n this.$set(this.searchForm, i.itemProp, i.itemValue)\r\n )\r\n })\r\n },\r\n deep: true,\r\n },\r\n },\r\n created() {\r\n // 克隆原表单\r\n this.cloneForm = lodash.cloneDeep(this.searchForm)\r\n this.dataInitialization(this.cloneForm)\r\n },\r\n mounted() {},\r\n methods: {\r\n // 初始化数据结构\r\n dataInitialization(form = {}) {\r\n const [basicSearchArr, advanceSearchArr] = ['basic', 'advance'].map(\r\n (searchType) => {\r\n return this.basisOption.flatMap((i) => {\r\n if (i.searchType !== searchType) return []\r\n let itemValue,\r\n labelWidth,\r\n isIndeterminate = false,\r\n checkAll = false\r\n if (\r\n i.itemType === 'checkbox' ||\r\n i.itemType === 'radio'\r\n ) {\r\n itemValue =\r\n typeof form[i.itemProp] === 'undefined'\r\n ? []\r\n : form[i.itemProp]\r\n checkAll = i.option.length === itemValue.length\r\n isIndeterminate =\r\n itemValue.length > 0 &&\r\n itemValue.length < i.option.length\r\n } else {\r\n itemValue =\r\n typeof form[i.itemProp] === 'undefined'\r\n ? ''\r\n : form[i.itemProp]\r\n }\r\n labelWidth = i.labelWidth || 'auto'\r\n return {\r\n ...i,\r\n isIndeterminate,\r\n checkAll,\r\n itemValue,\r\n labelWidth,\r\n }\r\n })\r\n }\r\n )\r\n this.search.basicSearchArr = basicSearchArr\r\n this.search.advanceSearchArr = advanceSearchArr\r\n },\r\n\r\n // 全选改变\r\n handleCheckAllChange(val, item) {\r\n item.itemValue = val ? item.option.map((i) => i.value) : []\r\n item.isIndeterminate = false\r\n },\r\n\r\n // 多选勾选改变\r\n handleCheckedCitiesChange(val, item) {\r\n item.checkAll = item.option.length === item.itemValue.length\r\n item.isIndeterminate =\r\n item.itemValue.length > 0 &&\r\n item.itemValue.length < item.option.length\r\n },\r\n\r\n // 单选框改变\r\n radioChange(val, item) {\r\n // 保证只能选中一个\r\n if (val.length <= 1) return\r\n item.itemValue = [val[val.length - 1]]\r\n },\r\n // 重置\r\n resetClick() {\r\n Object.keys(this.searchForm).forEach((key) => {\r\n Object.keys(this.cloneForm).forEach((_key) => {\r\n if (key === _key) this.searchForm[key] = this.cloneForm[key]\r\n })\r\n })\r\n this.$emit('reset', this.searchForm)\r\n this.dataInitialization(this.cloneForm)\r\n },\r\n\r\n // 搜索\r\n searchClick() {\r\n // this.isShow = false\r\n this.$emit('search', this.searchForm)\r\n console.log('搜索内容', this.searchForm)\r\n },\r\n\r\n // 展开高级搜索\r\n isShowAdvance() {\r\n this.isShow = !this.isShow\r\n this.$emit('is-show-advance')\r\n },\r\n },\r\n}\r\n",null]}