xing.li 3 lat temu
rodzic
commit
1fb04a66ca

Plik diff jest za duży
+ 15586 - 472
package-lock.json


+ 4 - 2
public/js/config.js

@@ -1,3 +1,5 @@
 window.global_config = {
 window.global_config = {
-  BASE_URL: 'http://221.224.53.27:20018'
-}
+  // BASE_URL: 'http://localhost:8083/'
+  BASE_URL: 'http://safe-api.hsay.com:19050/'
+
+}

+ 0 - 75
src/components/Core/UcButton.vue

@@ -1,75 +0,0 @@
-<template>
-  <el-button
-    :size="size"
-    :type="type"
-    :icon="icon"
-    :plain="plain"
-    :round="round"
-    :circle="circle"
-    :loading="loading"
-    @click="handleClick"
-  >{{label}}</el-button>
-</template>
-
-<script>
-export default {
-  name: 'UcButton',
-  props: {
-    label: {  // 按钮显示文本
-      type: String,
-      default: ''
-    },
-    icon: {  // 按钮显示图标
-      type: String,
-      default: ''
-    },
-    size: {  // 按钮尺寸
-      type: String,
-      default: 'mini'
-    },
-    type: {  // 按钮类型
-      type: String,
-      default: null
-    },
-    loading: {  // 按钮加载标识
-      type: Boolean,
-      default: false
-    },
-    disabled: {  // 按钮是否停用
-      type: Boolean,
-      default: false
-    },
-    plain: {  // 是否朴素按钮
-      type: Boolean,
-      default: false
-    },
-    round: {  // 是否圆角按钮
-      type: Boolean,
-      default: false
-    },
-    circle: {  // 是否圆形按钮
-      type: Boolean,
-      default: false
-    },
-    perms: {  // 按钮权限标识,外部使用者传入
-      type: String,
-      default: null
-    }
-  },
-  data () {
-    return {
-    }
-  },
-  methods: {
-    handleClick () {
-      // 按钮操作处理函数
-      this.$emit('click', {})
-    },
-  },
-  mounted () {
-  }
-}
-</script>
-
-<style scoped>
-</style>

+ 0 - 65
src/components/Core/UcLink.vue

@@ -1,65 +0,0 @@
-<template>
-  <el-tooltip
-    class="item"
-    effect="dark"
-    :content="tooltip"
-    placement="top"
-    :disabled="tooltip.length==0"
-  >
-    <el-link
-      :type="type"
-      :underline="false"
-      :class="icon"
-      @click="handleClick"
-    >{{label}}</el-link>
-  </el-tooltip>
-</template>
-<script>
-export default {
-  name: 'UcLink',
-  props: {
-    label: {  // 按钮显示文本
-      type: String,
-      default: ''
-    },
-    icon: {  // 按钮显示图标
-      type: String,
-      default: ''
-    },
-    type: {  // 按钮类型
-      type: String,
-      default: 'primary'
-    },
-    disabled: {  // 按钮是否停用
-      type: Boolean,
-      default: false
-    },
-    perms: {  // 按钮权限标识,外部使用者传入
-      type: String,
-      default: null
-    },
-    tooltip: {
-      type: String,
-      default: ''
-    }
-  },
-  data () {
-    return {
-    }
-  },
-  methods: {
-    handleClick () {
-      // 按钮操作处理函数
-      this.$emit('click', {})
-    },
-  },
-  mounted () {
-  }
-}
-</script>
-
-<style scoped lang="less">
-.el-link {
-  font-size: 14px;
-}
-</style>

+ 0 - 75
src/components/PopupTreeInput/index.vue

@@ -1,75 +0,0 @@
-<template>
-  <div>
-    <el-popover ref="popover" :placement="placement" trigger="click" :disabled="isEdit == 2">
-      <el-tree
-        :data="data"
-        :props="props"
-        node-key="nodeKey"
-        ref="popupTree"
-        @current-change="currentChangeHandle"
-        :default-expand-all="defaultExpandAll"
-        :accordion="accordion"
-        :highlight-current="true"
-        :expand-on-click-node="true"
-      ></el-tree>
-    </el-popover>
-    <el-input
-      :disabled="isEdit == 2"
-      v-model="prop"
-      v-popover:popover
-      :readonly="true"
-      :placeholder="placeholder"
-      style="cursor:pointer;"
-    ></el-input>
-  </div>
-</template>
-
-<script>
-export default {
-  name: 'PopupTreeInput',
-  props: {
-    isEdit: {
-      type: Number,
-      default: 0,
-    },
-    data: {
-      type: Array,
-    },
-    props: {
-      type: Object,
-    },
-    prop: {
-      type: String,
-      default: ''
-    },
-    nodeKey: {
-      type: String,
-      default: ''
-    },
-    placeholder: {
-      type: String,
-      default: '请选择内容'
-    },
-    placement: {
-      type: String,
-      default: 'bottom-start'
-    },
-    defaultExpandAll: {
-      type: Boolean,
-      default: false
-    },
-
-    accordion: {
-      type: Boolean,
-      default: true
-    },
-    currentChangeHandle: {
-      type: Function,
-      default: null
-    }
-  },
-}
-</script>
-
-<style scoped>
-</style>

+ 0 - 4
src/components/TableView/index.vue

@@ -1,7 +1,3 @@
-<!--
- * @Descripttion: Element Ui Table 表格二次封装
- * @Author: 周连
- -->
 <template>
 <template>
   <div class="TableView">
   <div class="TableView">
     <el-table
     <el-table

+ 0 - 50
src/components/auButton/index.vue

@@ -1,50 +0,0 @@
-<template>
-  <el-button v-bind="$props" v-if="isShow" @click="handleClick">
-    <slot></slot>
-  </el-button>
-</template>
-
-<script>
-import { mapGetters } from 'vuex'
-export default {
-  props: {
-    type: {
-      type: String,
-      default: 'default'
-    },
-    size: String,
-    icon: {
-      type: String,
-      default: ''
-    },
-    nativeType: {
-      type: String,
-      default: 'button'
-    },
-    loading: Boolean,
-    disabled: Boolean,
-    plain: Boolean,
-    autofocus: Boolean,
-    round: Boolean,
-    circle: Boolean,
-    authorId: Number
-  },
-  computed: {
-    ...mapGetters({
-      getAuthIds: 'permission/getAuthIds'
-    }),
-    isShow() {
-      if (this.authorId) {
-        return this.getAuthIds.includes(this.authorId)
-      } else {
-        return false
-      }
-    }
-  },
-  methods: {
-    handleClick(evt) {
-      this.$emit('click', evt)
-    }
-  }
-}
-</script>

+ 0 - 250
src/components/filterAdv/filterAdv.vue

@@ -1,250 +0,0 @@
-<template>
-  <div :key="menuKey">
-    <div class="filter-adv">
-      <!--分组线框-->
-      <div v-if="filterData.groups.length > 1" class="filter-group-groupbox">
-        <!--条件组合逻辑-->
-        <el-switch
-          v-model="filterData.logic"
-          class="filter-sw"
-          active-color="#13ce66"
-          inactive-color="#ff4949"
-          active-text="且"
-          active-value="and"
-          inactive-text="或"
-          inactive-value="or"
-        />
-      </div>
-
-      <!--占位块-->
-      <div v-if="filterData.groups.length > 1" style="width: 120px" />
-
-      <div class="filter-group-items">
-        <div
-          v-for="(group, groupIndex) in filterData.groups"
-          :key="groupIndex"
-          class="filter-group-wrap"
-        >
-          <div class="filter-group">
-            <!--分组线框-->
-            <div v-if="group.items.length > 1" class="filter-groupbox">
-              <!--条件组合逻辑-->
-              <el-switch
-                v-model="group.logic"
-                class="filter-sw"
-                active-color="#13ce66"
-                inactive-color="#ff4949"
-                active-text="且"
-                active-value="and"
-                inactive-text="或"
-                inactive-value="or"
-              />
-            </div>
-            <!--占位块-->
-            <div v-if="group.items.length > 1" style="width: 120px" />
-
-            <!--条件组-->
-            <div class="filter-items">
-              <!--条件项-->
-              <div
-                v-for="(item, index) in group.items"
-                :key="index"
-                class="filter-item"
-              >
-                <!-------------条件项------------->
-                <div class="filter-item-wrap">
-                  <filterAdvItem
-                    :ref="groupIndex.toString() + '_' + index.toString()"
-                    :field.sync="item.field"
-                    :exp.sync="item.exp"
-                    :value.sync="item.value"
-                    :filter-config="filterConfig"
-                  />
-                </div>
-                <div class="filter-item-remove">
-                  <el-link
-                    icon="el-icon-error"
-                    type="danger"
-                    @click="filterItemRemove(groupIndex, index)"
-                    >移除</el-link
-                  >
-                </div>
-              </div>
-            </div>
-          </div>
-
-          <!--组内按钮-->
-          <div class="filter-buttons">
-            <el-link
-              icon="el-icon-circle-plus"
-              @click="filterItemAppend(groupIndex)"
-              >添加一个条件</el-link
-            >
-          </div>
-        </div>
-      </div>
-    </div>
-    <!--组外按钮-->
-    <el-link icon="el-icon-circle-plus-outline" @click="filterGroupAppend"
-      >添加一组条件</el-link
-    >
-  </div>
-</template>
-
-<script>
-import filterAdvItem from './filterItem.vue'
-export default {
-  components: { filterAdvItem },
-  props: {
-    filterConfig: {
-      type: Array,
-      default: () => []
-    },
-    filterData: {
-      type: Object,
-      default: () => {}
-    }
-  },
-  data() {
-    return {
-      isShow: true,
-      menuKey: 0
-    }
-  },
-  methods: {
-    // 移除过滤项
-    filterItemRemove(groupIndex, index) {
-      // 当过滤项只剩余一项时,直接移除该组
-      // let itemRefName = groupIndex.toString() + '_' + index.toString()
-      // // let sss = Object.assign({},this.$refs[itemRefName])
-      // // console.log(sss)
-      // console.log(this.filterData.groups[groupIndex].items.length)
-      // this.$refs[itemRefName][0].removeSelf()
-      // console.log(this.filterData.groups[groupIndex].items)
-      if (this.filterData.groups[groupIndex].items.length === 1) {
-        this.filterData.groups.splice(groupIndex, 1)
-      } else {
-        this.filterData.groups[groupIndex].items.splice(index, 1)
-        // this.isShow = false
-        // let thisCom = this
-        // window.setTimeout(function(){thisCom.isShow = true},1)
-      }
-      this.menuKey++ // 用于重新渲染组件
-    },
-    // 添加过滤项
-    filterItemAppend(groupIndex) {
-      this.filterData.groups[groupIndex].items.push({
-        field: '',
-        expression: '',
-        value: ''
-      })
-    },
-
-    // 添加一组条件
-    filterGroupAppend() {
-      this.filterData.groups.push({
-        logic: 'and',
-        items: [
-          {
-            field: '',
-            exp: '',
-            value: ''
-          }
-        ]
-      })
-    }
-  }
-}
-</script>
-<style lang="less" scoped>
-.filter-group-wrap {
-  position: relative;
-  background-color: #f8f8f8;
-  border: 1px solid #ebeef5;
-  z-index: 0;
-  padding: 5px;
-  margin: 6px;
-  border-radius: 4px;
-  transition: 0.3s;
-}
-
-/* .filter-group-wrap:hover {
-  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
-} */
-
-.filter-adv {
-  position: relative;
-  display: flex;
-}
-
-.filter-group-groupbox {
-  position: absolute;
-  border: 1px solid #b8b8b8;
-  border-right: none;
-  top: 30px;
-  bottom: 30px;
-  left: 60px;
-  z-index: 0;
-  border-radius: 6px;
-
-  display: flex;
-  align-items: center;
-}
-
-.filter-group-items {
-  flex: 1;
-}
-
-.filter-group {
-  position: relative;
-  display: flex;
-}
-
-.filter-groupbox {
-  position: absolute;
-  border: 1px solid #b8b8b8;
-  border-right: none;
-  top: 15px;
-  bottom: 15px;
-  left: 60px;
-  z-index: 1;
-  border-radius: 6px;
-
-  display: flex;
-  align-items: center;
-}
-
-.filter-sw {
-  transform: translateX(-50%);
-}
-
-.filter-items {
-  z-index: 99;
-  position: relative;
-  flex: 1;
-}
-
-.filter-item {
-  margin: 4px 0;
-  display: flex;
-  align-items: center;
-  transition: 0.3s;
-
-  &:hover {
-    box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
-  }
-}
-
-.filter-item-wrap {
-  flex: 1;
-}
-
-.filter-item-remove {
-  width: 60px;
-  text-align: center;
-}
-
-.filter-buttons {
-  margin-left: 120px;
-}
-</style>

+ 0 - 266
src/components/filterAdv/filterItem.vue

@@ -1,266 +0,0 @@
-<template>
-  <div v-if="!isRemoveSelf" style="max-width: 600px">
-    <el-row :gutter="20">
-      <el-col :span="9">
-        <!--字段-->
-        <el-select
-          :value="field"
-          filterable
-          style="width: 100%"
-          @input="fieldInput"
-          @change="filterChange"
-        >
-          <el-option
-            v-for="(item, index) in filterConfig"
-            :key="index"
-            :label="item.fieldLabel"
-            :value="item.fieldValue"
-          />
-        </el-select>
-      </el-col>
-      <el-col :span="6">
-        <!--表达式-->
-        <el-select :value="exp" style="width: 100%" @input="expInput">
-          <el-option
-            v-for="item in expOptions"
-            :key="item.value"
-            :label="item.text"
-            :value="item.value"
-          />
-        </el-select>
-      </el-col>
-      <el-col :span="9">
-        <!--数字-->
-        <el-input-number
-          v-if="
-            selectedItem.fieldType === 'number' &&
-            exp != 'in' &&
-            exp != 'not in'
-          "
-          style="width: 100%"
-          :controls="false"
-          :value="value"
-          @input="valueInput"
-        />
-        <el-input
-          v-else-if="
-            selectedItem.fieldType === 'number' &&
-            (exp == 'in' || exp == 'not in')
-          "
-          style="width: 100%"
-          :controls="false"
-          :value="value"
-          @input="valueInput"
-        />
-        <!--日期-->
-        <el-date-picker
-          v-else-if="selectedItem.fieldType === 'date'"
-          style="width: 100%"
-          :value="value"
-          type="date"
-          placeholder="选择日期"
-          value-format="yyyy-MM-dd"
-          @input="valueInput"
-        />
-        <!--日期时间-->
-        <el-date-picker
-          v-else-if="selectedItem.fieldType === 'datetime'"
-          style="width: 100%"
-          :value="value"
-          type="datetime"
-          placeholder="选择日期时间"
-          value-format="yyyy-MM-dd HH:mm:ss"
-          @input="valueInput"
-        />
-        <!--月份-->
-        <el-date-picker
-          v-else-if="selectedItem.fieldType === 'month'"
-          style="width: 100%"
-          :value="value"
-          type="month"
-          placeholder="选择月份"
-          value-format="yyyy-MM"
-          @input="valueInput"
-        />
-        <!--字典-->
-        <!-- <el-select
-          v-else-if="selectedItem.fieldType === 'dict'"
-          style="width: 100%"
-          :value="value"
-          @input="valueInput"
-        >
-          <el-option
-            v-for="item in selectedItem.options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          />
-        </el-select> -->
-        <!--文本-->
-        <el-input
-          v-else-if="exp != 'is null' && exp != 'is not null'"
-          style="width: 100%"
-          :value="value"
-          @input="valueInput"
-        />
-      </el-col>
-    </el-row>
-  </div>
-</template>
-
-<script>
-export default {
-  components: {},
-  props: {
-    filterConfig: {
-      type: Array,
-      required: true
-    },
-
-    field: String,
-    exp: String,
-    value: {
-      type: [Number, String, Date]
-    }
-  },
-  data() {
-    return {
-      expsRule: {
-        equal: { text: '等于', value: '=' },
-        notEqual: { text: '不等于', value: '<>' },
-        greaterThan: { text: '大于', value: '>' },
-        lessThan: { text: '小于', value: '<' },
-        equalOrGreaterThan: { text: '大于等于', value: '>=' },
-        equalOrLessThan: { text: '小于等于', value: '<=' },
-        in: { text: '在其内', value: 'in' },
-        notIn: { text: '不在其内', value: 'not in' },
-        has: { text: '包含', value: 'like' },
-        nohas: { text: '不包含', value: 'not like' },
-        empty: { text: '为空', value: 'is null' },
-        noEmpty: { text: '不为空', value: 'is not null' }
-      },
-
-      selectedItem: {},
-      expOptions: [],
-
-      isRemoveSelf: false
-    }
-  },
-  computed: {
-    /**
-     * 字段类型与表达式配置
-     */
-    fieldTypeRules() {
-      return {
-        number: {
-          rules: [
-            this.expsRule.equal,
-            this.expsRule.notEqual,
-            this.expsRule.greaterThan,
-            this.expsRule.lessThan,
-            this.expsRule.equalOrGreaterThan,
-            this.expsRule.equalOrLessThan,
-            this.expsRule.in,
-            this.expsRule.notIn
-          ]
-        },
-        text: {
-          rules: [
-            this.expsRule.has,
-            this.expsRule.nohas,
-            this.expsRule.empty,
-            this.expsRule.noEmpty
-          ]
-        },
-        date: {
-          rules: [
-            this.expsRule.equal,
-            this.expsRule.notEqual,
-            this.expsRule.greaterThan,
-            this.expsRule.lessThan,
-            this.expsRule.equalOrGreaterThan,
-            this.expsRule.equalOrLessThan
-          ]
-        },
-        datetime: {
-          rules: [
-            this.expsRule.equal,
-            this.expsRule.notEqual,
-            this.expsRule.greaterThan,
-            this.expsRule.lessThan,
-            this.expsRule.equalOrGreaterThan,
-            this.expsRule.equalOrLessThan
-          ]
-        },
-        month: {
-          rules: [
-            this.expsRule.equal,
-            this.expsRule.notEqual,
-            this.expsRule.greaterThan,
-            this.expsRule.lessThan,
-            this.expsRule.equalOrGreaterThan,
-            this.expsRule.equalOrLessThan
-          ]
-        },
-        dict: {
-          // rules: [this.expsRule.equal, this.expsRule.notEqual]
-          rules: [
-            this.expsRule.has,
-            this.expsRule.nohas,
-            this.expsRule.empty,
-            this.expsRule.noEmpty
-          ]
-        }
-      }
-    }
-  },
-  watch: {},
-  created() {
-    const items = this.filterConfig.filter(filterItem => {
-      return filterItem.fieldValue === this.field
-    })
-
-    if (items.length > 0) {
-      this.selectedItem = items[0]
-    } else {
-      this.selectedItem = this.filterConfig[0]
-      this.$emit('update:field', this.selectedItem.fieldValue)
-    }
-
-    this.expOptions = this.fieldTypeRules[this.selectedItem.fieldType].rules
-
-    if (items.length === 0) {
-      this.$emit('update:exp', this.expOptions[0].value)
-    }
-  },
-  methods: {
-    // 切换字段时,重置表达式及输入值
-    filterChange(val) {
-      const items = this.filterConfig.filter(filterItem => {
-        return filterItem.fieldValue === val
-      })
-      this.selectedItem = items[0]
-      this.expOptions = this.fieldTypeRules[this.selectedItem.fieldType].rules
-      this.$emit('update:exp', this.expOptions[0].value)
-      this.$emit('update:value', '')
-    },
-    fieldInput(e) {
-      this.$emit('update:field', e)
-    },
-    expInput(e) {
-      this.$emit('update:exp', e)
-      if (e === 'is null' || e === 'is not null') {
-        this.$emit('update:value', '')
-      }
-    },
-    valueInput(e) {
-      this.$emit('update:value', e)
-    },
-    removeSelf() {
-      // 删除自己
-      this.isRemoveSelf = true
-    }
-  }
-}
-</script>
-<style scoped></style>

+ 0 - 70
src/components/filterAdv/inputRang.vue

@@ -1,70 +0,0 @@
-<template>
-  <div class="input-rang-box">
-    <el-input v-model="startNum" @change="valChange" v-onlyInt></el-input> 至
-    <el-input v-model="endNum" @change="valChange" v-onlyInt></el-input>
-  </div>
-</template>
-
-<script>
-export default {
-  props: {
-    value: { type: [String, Number], default: () => '' }
-  },
-  model: {
-    prop: 'value',
-    event: 'input'
-  },
-  data() {
-    return {
-      startNum: '',
-      endNum: '',
-      inputData: this.value
-    }
-  },
-  mounted() {
-    if (this.value) {
-      if (typeof this.value === 'number' || this.value.indexOf(',') == -1) {
-        this.startNum = ''
-        this.endNum = ''
-        this.valChange()
-      } else {
-        this.startNum = this.value.split(',')[0]
-        this.endNum = this.value.split(',')[1]
-      }
-    }
-  },
-  watch: {
-    value(val) {
-      this.inputData = val
-    },
-    inputData(val) {
-      if (val) {
-        if (typeof val === 'number' || val.indexOf(',') == -1) {
-          this.startNum = ''
-          this.endNum = ''
-          this.valChange()
-        } else {
-          this.startNum = val.split(',')[0]
-          this.endNum = val.split(',')[1]
-        }
-      }
-    }
-  },
-  methods: {
-    valChange() {
-      if (this.startNum && this.endNum) {
-        this.$emit('input', `${this.startNum},${this.endNum}`)
-      } else {
-        this.$emit('input', '')
-      }
-    }
-  }
-}
-</script>
-
-<style scoped lang="less">
-.input-rang-box {
-  display: flex;
-  line-height: 35px;
-}
-</style>

+ 0 - 27
src/components/group-button/index.vue

@@ -1,27 +0,0 @@
-<!-- 搜索、重置区下方,按钮群组 -->
-<template>
-  <div class="group-button">
-    <div><slot name="group-left"></slot></div>
-    <div><slot name="group-right"></slot></div>
-  </div>
-</template>
-
-<script>
-export default {
-  data () {
-    return {
-    }
-  },
-  methods: {
-  },
-}
-</script>
-
-<style lang="less" scoped>
-  .group-button{
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-    padding: 10px 0;
-  }
-</style>

+ 0 - 280
src/components/tinymce.vue

@@ -1,280 +0,0 @@
-<template>
-  <div class="tinymce-box">
-    <editor v-model="myValue" :init="tinymceInit" :disabled="disabled" @onBlur="onBlur"></editor>
-    <el-dialog
-      title="上传"
-      :visible.sync="dialogVisible"
-      v-if="dialogVisible"
-      width="600px"
-      append-to-body
-    >
-      <div class="FileUpload">
-        <div v-for="(item, index) in fileList" :key="item" class="fileDiv">
-          <img :src="item" alt />
-          <div class="fileDivBg">
-            <i class="el-icon-delete" @click="deleteFile(index)"></i>
-          </div>
-        </div>
-        <el-upload
-          class="avatar-uploader"
-          :action="action+'/Upload/UploadImage'"
-          :headers="myHeaders"
-          multiple
-          accept=".jpg, .jpeg, .png"
-          :on-success="handleAvatarSuccess"
-          :show-file-list="false"
-        >
-          <i class="el-icon-plus avatar-uploader-icon"></i>
-        </el-upload>
-      </div>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="cancelInsert">取 消</el-button>
-        <el-button type="primary" @click="insertImage">确 定</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-  import Editor from "@tinymce/tinymce-vue";
-  import tinymce from "../../static/tinymce/tinymce"; //tinymce默认hidden,不引入不显示
-  import "../../static/tinymce/themes/silver";
-  import "../../static/tinymce/plugins/media"; // 插入视频插件
-  import "../../static/tinymce/plugins/lists"; // 列表插件
-  import "../../static/tinymce/plugins/link";
-  import "../../static/tinymce/plugins/lineheight/plugin";
-  import '../../static/tinymce/icons/default'
-
-  export default {
-    components: {
-      Editor,
-    },
-    name: "tinymce",
-    props: {
-      disabled: {
-        type: Boolean,
-        default: false,
-      },
-      val: {
-        type: String,
-        default: "",
-      },
-      valIndex: {
-        type: Number,
-        default: -1,
-      },
-      boxHeight: {
-        type: Number,
-        default: 600,
-      },
-      mediaDisabled: {
-        type: Boolean,
-        default: false,
-      },
-    },
-    //监听数据实现传参双向绑定
-    watch: {
-      val (val) {
-        this.myValue = val;
-      },
-      myValue (val) {
-        if (this.valIndex >= 0) {
-          this.$emit("getval", val, this.valIndex);
-        } else {
-          this.$emit("getval", val);
-        }
-      },
-    },
-    data () {
-      return {
-        action: '',
-        myValue: "",
-        tinymceInit: {},
-        dialogVisible: false,
-        myHeaders: {
-          'Authorization': "Bearer "
-        },
-        fileList: [],
-      };
-    },
-    created () {
-      let that = this;
-      this.tinymceInit = {
-        automatic_uploads: false,
-        language_url: "./static/tinymce/langs/zh_CN.js",
-        language: "zh_CN",
-        skin_url: "./static/tinymce/skins/ui/oxide",
-        content_css: "./static/tinymce/skins/content/default/index.css",
-        height: this.boxHeight,
-        plugins: "lists media link lineheight",
-        toolbar: this.mediaDisabled
-          ? "undo redo | formatselect fontselect | lineheight fontsizeselect bold italic forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | lists  table | removeformat"
-          : "imageUpload link  | undo redo | formatselect fontselect | lineheight fontsizeselect bold italic forecolor backcolor | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | lists  table | removeformat",
-        font_formats: "Microsoft Yahei",//| media
-        fontsize_formats: "12px 14px 16px 18px 20px 28px 32px 40px",
-        lineheight_formats: "20px 24px 28px 32px 36px 40px",
-        menu: {
-          file: { title: "文件", items: "newdocument" },
-          edit: {
-            title: "编辑",
-            items: "undo redo | cut copy paste pastetext | selectall",
-          },
-          insert: {
-            title: "插入",
-            items: "link | template hr",
-          },
-          format: {
-            title: "格式",
-            items: "bold italic underline strikethrough superscript subscript | formats | removeformat",
-          },
-        },
-        setup: (editor) => {
-          editor.ui.registry.addButton("imageUpload", {
-            tooltip: "插入图片",
-            icon: "image",
-            onAction: () => {
-              that.dialogVisible = true;
-            },
-          });
-        },
-        media_alt_source: false, //媒体弹框显示隐藏资源备用地址输入框
-        media_poster: false, //媒体弹框显示隐藏资源备用地址输入框
-        media_url_resolver: function(data, resolve /*, reject*/) {
-          if (data.width === undefined) {
-            data.width = 500;
-          }
-          if (data.height === undefined) {
-            data.height = 400;
-          }
-          if (data.url.indexOf("video.xjtlu.edu.cn") !== -1) {
-            var embedHtml = `<iframe frameborder="0" scrolling="auto" marginheight="0" marginwidth="0" allowfullscreen msallowfullscreen allow="fullscreen"
-                                      width="${data.width}"
-                                      height="${data.height}"
-                                      src="${data.url}">`;
-            resolve({ html: embedHtml });
-          } else {
-            resolve({ html: "" });
-          }
-        },
-      };
-      this.myValue = this.val;
-    },
-    methods: {
-      cancelInsert () {
-        this.dialogVisible = false;
-        this.fileList = [];
-      },
-      insertImage () {
-        this.fileList.forEach((item) => {
-          let myHTML = '<img style="max-width:100%!important" src="' + item + '" />';
-          // tinyMCE.execCommand("mceInsertContent", false, myHTML);
-          this.myValue += myHTML;
-        });
-        this.dialogVisible = false;
-        this.fileList = [];
-      },
-      handleAvatarSuccess (res, file) {
-        if (res.code === 200) {
-
-          if (res.internalCode && res.internalCode == 'Information') {
-            this.$message.closeAll();
-            this.$message.error(res.message);
-          }
-          else {
-
-            this.fileList = this.fileList.concat(res.data);
-          }
-        } else if (res.code === 401) {
-          this.$message.closeAll();
-          this.$message.error('登录已过期,请重新登录');
-          router.push('/login');
-        } else {
-          this.$message.closeAll();
-          this.$message.error(res.message);
-        }
-
-      },
-      deleteFile (index) {
-        this.fileList.splice(index, 1);
-        this.$emit("validateBanner");
-      },
-      onBlur () {
-        this.$emit("geTinymcetVal", this.myValue);
-      },
-    },
-  };
-</script>
-<style lang="less">
-.FileUpload {
-  display: flex;
-  flex-wrap: wrap;
-  & > * {
-    margin-right: 10px;
-  }
-  .fileDiv {
-    width: 100px;
-    height: 100px;
-    line-height: 100px;
-    border: 1px dashed #d9d9d9;
-    border-radius: 6px;
-    overflow: hidden;
-    position: relative;
-    &:hover {
-      .fileDivBg {
-        opacity: 1;
-      }
-    }
-    img {
-      width: 100%;
-      display: inline-block;
-      vertical-align: middle;
-    }
-    .fileDivBg {
-      position: absolute;
-      width: 100%;
-      height: 100%;
-      left: 0;
-      top: 0;
-      text-align: center;
-      color: #fff;
-      opacity: 0;
-      font-size: 20px;
-      background-color: rgba(0, 0, 0, 0.5);
-      transition: opacity 0.3s;
-      cursor: pointer;
-      display: flex;
-      align-items: center;
-      justify-content: center;
-      .el-icon-delete {
-        cursor: pointer;
-        height: 21px;
-        line-height: 21px;
-        margin: 0 5px;
-      }
-    }
-  }
-  .avatar-uploader .el-upload {
-    border: 1px dashed #d9d9d9;
-    border-radius: 6px;
-    cursor: pointer;
-    position: relative;
-    overflow: hidden;
-  }
-  .avatar-uploader .el-upload:hover {
-    border-color: #409eff;
-  }
-  .avatar-uploader-icon {
-    font-size: 28px;
-    color: #8c939d;
-    width: 100px;
-    height: 100px;
-    line-height: 100px;
-    text-align: center;
-  }
-  .avatar {
-    width: 100px;
-    height: 100px;
-    display: block;
-  }
-}
-</style>

+ 0 - 4
src/main.js

@@ -4,7 +4,6 @@ import router from './router'
 import store from './store'
 import store from './store'
 import ElementUI from 'element-ui'
 import ElementUI from 'element-ui'
 import 'element-ui/lib/theme-chalk/index.css'
 import 'element-ui/lib/theme-chalk/index.css'
-// import '../static/iconfont/iconfont.css'
 import '../static/font-hsay/iconfont.css'
 import '../static/font-hsay/iconfont.css'
 import pubFun from '@/utils/pubFun'
 import pubFun from '@/utils/pubFun'
 import '@/assets/theme/index.css'
 import '@/assets/theme/index.css'
@@ -13,7 +12,6 @@ import '@/assets/styles/element_alter.less'
 import Fragment from 'vue-fragment'
 import Fragment from 'vue-fragment'
 import md5 from 'js-md5'
 import md5 from 'js-md5'
 import { Message } from 'element-ui'
 import { Message } from 'element-ui'
-import auButton from '@/components/auButton/index.vue'
 import '@/icon';
 import '@/icon';
 // Vue 添加指令校验input只能输入正整数 input组件上 使用 v-onlyInt 即可
 // Vue 添加指令校验input只能输入正整数 input组件上 使用 v-onlyInt 即可
 import onlyInt from "@/utils/onlyNumber/onlyInt";
 import onlyInt from "@/utils/onlyNumber/onlyInt";
@@ -26,13 +24,11 @@ Vue.prototype.hasPerm = hasBtnPermission
 Vue.prototype.$pubFun = pubFun 
 Vue.prototype.$pubFun = pubFun 
 Vue.prototype.$message = Message
 Vue.prototype.$message = Message
 Vue.prototype.$md5 = md5
 Vue.prototype.$md5 = md5
-Vue.component('au-button', auButton)
 Vue.use(Fragment.Plugin) 
 Vue.use(Fragment.Plugin) 
 Vue.use(ElementUI)
 Vue.use(ElementUI)
 Vue.use(router)
 Vue.use(router)
 import global from './common'
 import global from './common'
 Vue.prototype.GLOBAL = global
 Vue.prototype.GLOBAL = global
-
 Vue.config.productionTip = false
 Vue.config.productionTip = false
 
 
 new Vue({
 new Vue({

+ 88 - 88
src/pages/classification/index.vue

@@ -1,31 +1,31 @@
 <template>
 <template>
   <div
   <div
-    class="classification_list"
-    v-loading.fullscreen.lock="fullscreenLoading"
+      class="classification_list"
+      v-loading.fullscreen.lock="fullscreenLoading"
   >
   >
     <div class="classification_list_headerSelect">
     <div class="classification_list_headerSelect">
       <div class="classification-list-btn">
       <div class="classification-list-btn">
         <el-form ref="form" :model="form" inline label-width="90px">
         <el-form ref="form" :model="form" inline label-width="90px">
           <el-form-item class="header_top_form" label="分类名称:" prop="name">
           <el-form-item class="header_top_form" label="分类名称:" prop="name">
             <el-input
             <el-input
-              v-model.trim="form.name"
-              size="small"
-              placeholder="请输入"
-              clearable
+                v-model.trim="form.name"
+                size="small"
+                placeholder="请输入"
+                clearable
             ></el-input>
             ></el-input>
           </el-form-item>
           </el-form-item>
           <el-form-item class="header_top_form" label="状态:" prop="status">
           <el-form-item class="header_top_form" label="状态:" prop="status">
             <el-select
             <el-select
-              v-model="form.status"
-              clearable
-              size="small"
-              placeholder="请选择"
+                v-model="form.status"
+                clearable
+                size="small"
+                placeholder="请选择"
             >
             >
               <el-option
               <el-option
-                v-for="item in options"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
+                  v-for="item in options"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
               >
               >
               </el-option>
               </el-option>
             </el-select>
             </el-select>
@@ -33,40 +33,40 @@
         </el-form>
         </el-form>
         <div style="margin-right: 23px">
         <div style="margin-right: 23px">
           <el-button
           <el-button
-            size="small"
-            style="width: 88px"
-            type="primary"
-            @click="search"
-            >查询</el-button
+              size="small"
+              style="width: 88px"
+              type="primary"
+              @click="search"
+          >查询</el-button
           >
           >
           <el-button size="small" style="width: 88px" @click="resetForm('form')"
           <el-button size="small" style="width: 88px" @click="resetForm('form')"
-            >重置</el-button
+          >重置</el-button
           >
           >
         </div>
         </div>
       </div>
       </div>
       <div style="text-align: right">
       <div style="text-align: right">
         <el-button
         <el-button
-          size="small"
-          style="width: 104px; margin-right: 23px"
-          @click="addList"
-          icon="iconfont icon-a-zu13"
-          >新增</el-button
+            size="small"
+            style="width: 104px; margin-right: 23px"
+            @click="addList"
+            icon="iconfont icon-a-zu13"
+        >新增</el-button
         >
         >
       </div>
       </div>
     </div>
     </div>
     <div>
     <div>
       <el-table
       <el-table
-        ref="editTable"
-        :data="tableData"
-        stripe
-        :header-cell-style="{ background: '#F7F7F7' }"
-        :height="screenHeight"
+          ref="editTable"
+          :data="tableData"
+          stripe
+          :header-cell-style="{ background: '#F7F7F7' }"
+          :height="screenHeight"
       >
       >
         <el-table-column
         <el-table-column
-          label="分类名称"
-          prop="name"
-          align="center"
-          show-overflow-tooltip
+            label="分类名称"
+            prop="name"
+            align="center"
+            show-overflow-tooltip
         >
         >
           <template slot-scope="scope">
           <template slot-scope="scope">
             <a class="a_link" @click="classificaName(scope.row)" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
             <a class="a_link" @click="classificaName(scope.row)" style="overflow: hidden;white-space: nowrap;text-overflow: ellipsis;">
@@ -75,34 +75,34 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
         <el-table-column
         <el-table-column
-          label="链接地址"
-          prop="linkUrl"
-          align="center"
-          min-width="180"
+            label="链接地址"
+            prop="linkUrl"
+            align="center"
+            min-width="180"
         ></el-table-column>
         ></el-table-column>
         <el-table-column label="禁用/启用" prop="status" align="center">
         <el-table-column label="禁用/启用" prop="status" align="center">
           <template slot-scope="scope">
           <template slot-scope="scope">
             <div>
             <div>
               <el-switch
               <el-switch
-                v-model="scope.row.status"
-                active-color="#17A8FF"
-                inactive-color="#AFAFAF"
-                @change="switchChange($event, scope.row)"
+                  v-model="scope.row.status"
+                  active-color="#17A8FF"
+                  inactive-color="#AFAFAF"
+                  @change="switchChange($event, scope.row)"
               >
               >
               </el-switch>
               </el-switch>
             </div> </template
             </div> </template
-        ></el-table-column>
+          ></el-table-column>
         <el-table-column
         <el-table-column
-          label="创建人"
-          prop="createUserName"
-          align="center"
-          show-overflow-tooltip
+            label="创建人"
+            prop="createUserName"
+            align="center"
+            show-overflow-tooltip
         ></el-table-column>
         ></el-table-column>
         <el-table-column
         <el-table-column
-          label="创建时间"
-          prop="createTime"
-          align="center"
-          show-overflow-tooltip
+            label="创建时间"
+            prop="createTime"
+            align="center"
+            show-overflow-tooltip
         ></el-table-column>
         ></el-table-column>
         <el-table-column label="操作" width="140px" align="center">
         <el-table-column label="操作" width="140px" align="center">
           <template slot-scope="scope">
           <template slot-scope="scope">
@@ -114,14 +114,14 @@
       </el-table>
       </el-table>
     </div>
     </div>
     <el-pagination
     <el-pagination
-      @size-change="handleSizeChange"
-      @current-change="handleCurrentChange"
-      :current-page="form.pageNum"
-      :page-sizes="[100, 200, 300, 400]"
-      :page-size="form.pageSize"
-      background
-      layout="total,prev, pager, next,jumper"
-      :total="form.total"
+        @size-change="handleSizeChange"
+        @current-change="handleCurrentChange"
+        :current-page="form.pageNum"
+        :page-sizes="[100, 200, 300, 400]"
+        :page-size="form.pageSize"
+        background
+        layout="total,prev, pager, next,jumper"
+        :total="form.total"
     >
     >
     </el-pagination>
     </el-pagination>
     <edit-dialog ref="editDialogRefs" />
     <edit-dialog ref="editDialogRefs" />
@@ -140,7 +140,7 @@ export default {
       fullscreenLoading: false,
       fullscreenLoading: false,
       form: {
       form: {
         name: '',
         name: '',
-        status: '',
+        status: 1,
         pageNum: 1,
         pageNum: 1,
         pageSize: 10,
         pageSize: 10,
         start: '',
         start: '',
@@ -206,26 +206,26 @@ export default {
         status: this.form.status
         status: this.form.status
       }
       }
       api
       api
-        .GET('/doc/type/list', code)
-        .then(res => {
-          if (res.code == 0) {
-            this.tableData = res.data.list
-            this.tableData.forEach(item => {
-              item.status == 1 ? (item.status = true) : (item.status = false)
-            })
-            this.form.pageNum = res.data.currPage
-            this.form.pageSize = res.data.pageSize
-            this.form.total = res.data.totalCount
+          .GET('/doc/type/list', code)
+          .then(res => {
+            if (res.code == 0) {
+              this.tableData = res.data.list
+              this.tableData.forEach(item => {
+                item.status == 1 ? (item.status = true) : (item.status = false)
+              })
+              this.form.pageNum = res.data.currPage
+              this.form.pageSize = res.data.pageSize
+              this.form.total = res.data.totalCount
+              this.fullscreenLoading = false
+              this.$nextTick(() => {
+                this.$refs.editTable.bodyWrapper.scrollTop = this.tableDataheight
+                this.tableDataheight = 0
+              })
+            }
+          })
+          .catch(() => {
             this.fullscreenLoading = false
             this.fullscreenLoading = false
-            this.$nextTick(() => {
-              this.$refs.editTable.bodyWrapper.scrollTop = this.tableDataheight
-              this.tableDataheight = 0
-            })
-          }
-        })
-        .catch(() => {
-          this.fullscreenLoading = false
-        })
+          })
     },
     },
     /**
     /**
      * @method 分页条数
      * @method 分页条数
@@ -275,16 +275,16 @@ export default {
         status: val
         status: val
       }
       }
       api
       api
-        .PUT('/doc/type/updateSwitch', code)
-        .then(data => {
-          if (data.code == 0) {
+          .PUT('/doc/type/updateSwitch', code)
+          .then(data => {
+            if (data.code == 0) {
+              this.search()
+              this.$message.success(data.message)
+            }
+          })
+          .catch(() => {
             this.search()
             this.search()
-            this.$message.success(data.message)
-          }
-        })
-        .catch(() => {
-          this.search()
-        })
+          })
     }
     }
   }
   }
 }
 }

+ 1 - 1
src/pages/fileManagement/index.vue

@@ -180,7 +180,7 @@ export default {
         total: 0,
         total: 0,
         name: '',
         name: '',
         start: '',
         start: '',
-        status: '',
+        status: 1,
         typeId: ''
         typeId: ''
       },
       },
       classifyList: [],
       classifyList: [],

+ 36 - 0
src/pages/sessionManagement/index.vue

@@ -14,6 +14,14 @@
               clearable
               clearable
             ></el-input>
             ></el-input>
           </el-form-item>
           </el-form-item>
+          <el-form-item class="header_top_form" label="群主名称:" prop="ownerName">
+            <el-input
+              placeholder="请输入"
+              size="small"
+              v-model.trim="form.ownerName"
+              clearable
+            ></el-input>
+          </el-form-item>
         </el-form>
         </el-form>
         <div style="margin-right: 23px">
         <div style="margin-right: 23px">
           <el-button
           <el-button
@@ -23,6 +31,13 @@
             @click="search"
             @click="search"
             >查询</el-button
             >查询</el-button
           >
           >
+          <el-button
+            size="small"
+            type="primary"
+            style="width: 108px"
+            @click="batchSynchronous"
+            >一键同步会话</el-button
+          >
           <el-button size="small" style="width: 88px" @click="resetForm('form')"
           <el-button size="small" style="width: 88px" @click="resetForm('form')"
             >重置</el-button
             >重置</el-button
           >
           >
@@ -116,6 +131,7 @@ export default {
         pageNum: 1,
         pageNum: 1,
         pageSize: 10,
         pageSize: 10,
         conversationName: '',
         conversationName: '',
+        ownerName:'',
         start: '',
         start: '',
         total: 0
         total: 0
       },
       },
@@ -168,6 +184,7 @@ export default {
       this.fullscreenLoading = true
       this.fullscreenLoading = true
       let code = {
       let code = {
         conversationName: this.form.conversationName,
         conversationName: this.form.conversationName,
+        ownerName: this.form.ownerName,
         page: this.form.pageNum,
         page: this.form.pageNum,
         pageSize: this.form.pageSize,
         pageSize: this.form.pageSize,
         start: this.form.start
         start: this.form.start
@@ -246,6 +263,25 @@ export default {
           })
           })
         })
         })
         .catch(() => {})
         .catch(() => {})
+    },
+    batchSynchronous() {
+      this.tableDataheight = this.$refs.editTable.bodyWrapper.scrollTop
+      sessionStorage.setItem('sessionManagement', this.form.pageNum)
+      this.$confirm('此操作将根据查询条件一键同步会话信息, 是否继续?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(() => {
+          var url = 'conversation/batch/sync?conversationName=' + this.form.conversationName + '&ownerName=' + this.form.ownerName;
+          api.PUT(url).then(res => {
+            if (res.code == 0) {
+              this.$message.success(res.message)
+              this.search()
+            }
+          })
+        })
+        .catch(() => {})
     }
     }
   }
   }
 }
 }