Ver código fonte

删除无用代码

zhy 2 dias atrás
pai
commit
f311ba9c77
38 arquivos alterados com 2 adições e 5016 exclusões
  1. 0 113
      src/views/communityGovernance/exposure.vue
  2. 0 121
      src/views/communityGovernance/merchant.vue
  3. 0 65
      src/views/communityGovernance/record.vue
  4. 0 102
      src/views/dashboard/BarChart.vue
  5. 0 135
      src/views/dashboard/LineChart.vue
  6. 0 181
      src/views/dashboard/PanelGroup.vue
  7. 0 79
      src/views/dashboard/PieChart.vue
  8. 0 116
      src/views/dashboard/RaddarChart.vue
  9. 0 56
      src/views/dashboard/mixins/resize.js
  10. 0 199
      src/views/feedback/index.vue
  11. 0 98
      src/views/index_v1.vue
  12. 0 19
      src/views/infoReview/customconfig/custom_essc.js
  13. 0 17
      src/views/infoReview/customconfig/custom_fsbw.js
  14. 0 19
      src/views/infoReview/customconfig/custom_fucs.js
  15. 0 19
      src/views/infoReview/customconfig/custom_fucz.js
  16. 0 17
      src/views/infoReview/customconfig/custom_jzfw.js
  17. 0 20
      src/views/infoReview/customconfig/custom_qz.js
  18. 0 21
      src/views/infoReview/customconfig/custom_zp.js
  19. 0 168
      src/views/infoReview/index.vue
  20. 0 88
      src/views/integral/log.vue
  21. 0 110
      src/views/integral/rule.vue
  22. 0 83
      src/views/integral/user.vue
  23. 0 351
      src/views/lostfound/index.vue
  24. 0 212
      src/views/questionnaire/addFrame.vue
  25. 0 258
      src/views/questionnaire/addFrame2.vue
  26. 0 208
      src/views/questionnaire/index.vue
  27. 0 111
      src/views/questionnaire/notes.vue
  28. 0 88
      src/views/questionnaire/paper.vue
  29. 0 315
      src/views/register/user/index.vue
  30. 0 276
      src/views/report/index.vue
  31. 0 265
      src/views/seat/address/index.vue
  32. 0 251
      src/views/seat/estate/index.vue
  33. 0 273
      src/views/seat/gridman/index.vue
  34. 0 176
      src/views/sync/index.vue
  35. 0 132
      src/views/vote/activity.vue
  36. 0 96
      src/views/vote/count.vue
  37. 0 156
      src/views/vote/review.vue
  38. 2 2
      vue.config.js

+ 0 - 113
src/views/communityGovernance/exposure.vue

@@ -1,113 +0,0 @@
-<template>
-    <div class="app-container" v-loading="loading">
-      <FilterList :readOnly="false" v-if="tableData" :pagination="true" :options="options" :operate="false"
-        :filed="listFileds" :tableData="tableData" :total="total" @query="query" @edit="listEdit" @delete="listDel"
-        @add="add">
-        <template v-slot:tablesOperate="{ scope }">
-          <el-button type="text" size="mini" @click="listEdit(scope.row)">修改</el-button>
-          <el-button type="text" size="mini" @click="listDel(scope.row)">删除</el-button>
-        </template>
-      </FilterList>
-      <el-dialog :title="dialogInfo.title" :visible.sync="dialogInfo.dialogVisible" :width="dialogInfo.width">
-        <dynamicForm :readOnly="readOnly" ref="dynamicForm" v-if="formFiled && dialogInfo.dialogVisible" :filed="formFiled"
-          :data="formData" @save="formSave"></dynamicForm>
-      </el-dialog>
-    </div>
-  </template>
-    
-  <script>
-  // 曝光
-  import _ from 'lodash';
-import { businessAdd, businessUpdate, businessDel, businessQuery, businessFetch } from "@/api/communityGovernance/exposure";
-  export default {
-    name: "merchant",
-    dicts: [],
-    data() {
-      return {
-        tableData: [],
-        total: 0,
-        listFileds: [
-          { label: "商户名称", name: "name", filter: true },
-          { label: "负责人", name: "responsible", filter: true },
-          { label: "联系电话", name: "phone", filter: true },
-        ],
-        dialogInfo: {
-          title: "",
-          dialogVisible: false,
-          width: "50%",
-        },
-        formFiled: [
-          { label: "门店照片", name: "image", formater: "imageUpload" },
-          { label: "商户名称", name: "name" },
-          { label: "负责人", name: "responsible" },
-          { label: "联系电话", name: "phone" },
-          { label: "详细描述", name: "description", formater: 'editor' },
-        ],
-        formData: {},
-        loading: false,
-        operation: [],
-        options: {
-          width: '180'
-        },
-        readOnly: false
-      };
-    },
-    async created() {
-      this.query();
-    },
-    methods: {
-      // 列表查询
-      async query(e) {
-        this.loading = true;
-        const res = await businessQuery({ ...e, pageNum: e?.pageNum ?? 1, pageSize: e?.pageSize ?? 10 });
-        if (res.code == 200) {
-          this.tableData = res.rows;
-          this.total = res.total;
-        }
-        this.loading = false;
-      },
-      // 列表修改
-      async listEdit(e) {
-        this.loading = true;
-        const res = await businessFetch(e.id);
-        if (res.code == 200) {
-          this.formData = res.data;
-          this.dialogInfo.title = `修改商户`;
-          this.dialogInfo.dialogVisible = true;
-        }
-        this.loading = false;
-      },
-      // 列表删除
-      async listDel(e) {
-        this.$modal.confirm('是否确认删除"').then(function () {
-          return businessDel([e.id]);
-        }).then(() => {
-          this.query();
-          this.$modal.msgSuccess('删除成功');
-        }).catch(() => { });
-      },
-      // 添加
-      async add() {
-        this.readOnly = false;
-        this.formData = {};
-        this.dialogInfo.title = `添加商户`;
-        this.dialogInfo.dialogVisible = true;
-      },
-      // 表单保存
-      async formSave(e) {
-        this.loading = true;
-        let res;
-        // 修改
-        if (e.id) res = await businessUpdate(e);
-        // 新增
-        if (!e.id) res = await businessAdd(e);
-        if (res.code == 200) {
-          this.$modal.msgSuccess(`${e.id ? '修改' : '新增'}成功`);
-          this.dialogInfo.dialogVisible = false;
-          this.query();
-        }
-        this.loading = false;
-      },
-    }
-  };
-  </script>

+ 0 - 121
src/views/communityGovernance/merchant.vue

@@ -1,121 +0,0 @@
-<template>
-  <div class="app-container" v-loading="loading">
-    <FilterList :readOnly="false" v-if="tableData" :pagination="true" :options="options" :operate="false"
-      :filed="listFileds" :tableData="tableData" :total="total" @query="query" @edit="listEdit" @delete="listDel"
-      @add="add">
-      <template v-slot:tablesOperate="{ scope }">
-        <el-button type="text" size="mini" @click="listRecord(scope.row)">记录</el-button>
-        <el-button type="text" size="mini" @click="listEdit(scope.row)">修改</el-button>
-        <el-button type="text" size="mini" @click="listDel(scope.row)">删除</el-button>
-      </template>
-    </FilterList>
-    <el-dialog :title="dialogInfo.title" :visible.sync="dialogInfo.dialogVisible" :width="dialogInfo.width">
-      <dynamicForm :readOnly="readOnly" ref="dynamicForm" v-if="formFiled && dialogInfo.dialogVisible" :filed="formFiled"
-        :data="formData" @save="formSave"></dynamicForm>
-    </el-dialog>
-  </div>
-</template>
-  
-<script>
-// 商户管理
-import _ from 'lodash';
-import { businessAdd, businessUpdate, businessDel, businessQuery, businessFetch } from "@/api/communityGovernance/merchant";
-export default {
-  name: "merchant",
-  dicts: [],
-  data() {
-    return {
-      tableData: [],
-      total: 0,
-      listFileds: [
-        { label: "商户名称", name: "name", filter: true },
-        { label: "负责人", name: "responsible", filter: true },
-        { label: "联系电话", name: "phone", filter: true },
-        { label: "评分", name: "point" },
-      ],
-      dialogInfo: {
-        title: "",
-        dialogVisible: false,
-        width: "50%",
-      },
-      formFiled: [
-        { label: "门店照片", name: "image", formater: "imageUpload" },
-        { label: "商户名称", name: "name" },
-        { label: "负责人", name: "responsible" },
-        { label: "联系电话", name: "phone" },
-        { label: "详细描述", name: "description", formater: 'editor' },
-      ],
-      formData: {},
-      loading: false,
-      operation: [],
-      options: {
-        width: '180'
-      },
-      readOnly: false
-    };
-  },
-  async created() {
-    this.query();
-  },
-  methods: {
-    // 列表查询
-    async query(e) {
-      this.loading = true;
-      const res = await businessQuery({ ...e, pageNum: e?.pageNum ?? 1, pageSize: e?.pageSize ?? 10 });
-      if (res.code == 200) {
-        this.tableData = res.rows.map(j => ({ ...j, point: j.point ?? '无' }));
-        this.total = res.total;
-      }
-      this.loading = false;
-    },
-    // 列表修改
-    async listEdit(e) {
-      // this.readOnly = true;
-      this.loading = true;
-      const res = await businessFetch(e.id);
-      if (res.code == 200) {
-        this.formData = res.data;
-        this.dialogInfo.title = `修改商户`;
-        this.dialogInfo.dialogVisible = true;
-      }
-      this.loading = false;
-    },
-    // 列表删除
-    async listDel(e) {
-      this.$modal.confirm('是否确认删除"').then(function () {
-        return businessDel([e.id]);
-      }).then(() => {
-        this.query();
-        this.$modal.msgSuccess('删除成功');
-      }).catch(() => { });
-    },
-    // 添加
-    async add() {
-      this.readOnly = false;
-      this.formData = {};
-      this.dialogInfo.title = `添加商户`;
-      this.dialogInfo.dialogVisible = true;
-    },
-    // 列表查看评分记录
-    async listRecord(e) {
-      console.log(e);
-      this.$router.push(`/communityGovernance/community_governance_record?id=${e.id}`);
-    },
-    // 表单保存
-    async formSave(e) {
-      this.loading = true;
-      let res;
-      // 修改
-      if (e.id) res = await businessUpdate(e);
-      // 新增
-      if (!e.id) res = await businessAdd(e);
-      if (res.code == 200) {
-        this.$modal.msgSuccess(`${e.id ? '修改' : '新增'}成功`);
-        this.dialogInfo.dialogVisible = false;
-        this.query();
-      }
-      this.loading = false;
-    },
-  }
-};
-</script>

+ 0 - 65
src/views/communityGovernance/record.vue

@@ -1,65 +0,0 @@
-<template>
-    <div class="app-container" v-loading="loading">
-      <FilterList :useBtn="false" v-if="tableData" :pagination="true" :readOnly="true" :options="options" :filed="listFileds" :tableData="tableData" :total="total" @query="query">
-        <template v-slot:search="{ item, formInline }">
-          <el-date-picker clearable  value-format="yyyy-MM-dd hh:mm:ss" v-model="formInline[item.name]" type="datetime" :placeholder="'请选择日期时间'" format="yyyy-MM-dd hh:mm:ss" >
-      </el-date-picker>
-        </template>
-      </FilterList>
-    </div>
-  </template>
-    
-  <script>
-  // 曝光
-  import _ from 'lodash';
-import { recordQuery } from "@/api/communityGovernance/record";
-  export default {
-    name: "merchant",
-    dicts: [],
-    data() {
-      return {
-        tableData: [],
-        total: 0,
-        listFileds: [
-          { label: "商户名称", name: "businessInfo.name" },
-          { label: "负责人", name: "businessInfo.responsible" },
-          { label: "联系电话", name: "businessInfo.phone" },
-          { label: "用户名称", name: "user.name" },
-          { label: "用户手机号", name: "user.phone" },
-          { label: "评分", name: "point" },
-          { label: "创建时间", name: "createTime" },
-          { label: "开始时间", name: "startTime", isShow: false, filter: true, formater: 'slot' },
-          { label: "结束时间", name: "endTime", isShow: false, filter: true, formater: 'slot' },
-        ],
-        loading: false,
-        options: {
-          width: '180'
-        },
-      };
-    },
-    async created() {
-      this.query();
-    },
-    methods: {
-      // 列表查询
-      async query(e) {
-        this.loading = true;
-        const res = await recordQuery({ ...e, pageNum: e?.pageNum ?? 1, pageSize: e?.pageSize ?? 10, businessId: this.$route.query.id });
-        if (res.code == 200) {
-          res.rows = res.rows.map(j => {
-            for (const key in j.user) {
-              j[`user.${key}`] = j.user[key]
-            }
-            for (const key in j.businessInfo) {
-              j[`businessInfo.${key}`] = j.businessInfo[key]
-            }
-            return j;
-          });
-          this.tableData = res.rows;
-          this.total = res.total;
-        }
-        this.loading = false;
-      },
-    }
-  };
-  </script>

+ 0 - 102
src/views/dashboard/BarChart.vue

@@ -1,102 +0,0 @@
-<template>
-  <div :class="className" :style="{height:height,width:width}" />
-</template>
-
-<script>
-import echarts from 'echarts'
-require('echarts/theme/macarons') // echarts theme
-import resize from './mixins/resize'
-
-const animationDuration = 6000
-
-export default {
-  mixins: [resize],
-  props: {
-    className: {
-      type: String,
-      default: 'chart'
-    },
-    width: {
-      type: String,
-      default: '100%'
-    },
-    height: {
-      type: String,
-      default: '300px'
-    }
-  },
-  data() {
-    return {
-      chart: null
-    }
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart()
-    })
-  },
-  beforeDestroy() {
-    if (!this.chart) {
-      return
-    }
-    this.chart.dispose()
-    this.chart = null
-  },
-  methods: {
-    initChart() {
-      this.chart = echarts.init(this.$el, 'macarons')
-
-      this.chart.setOption({
-        tooltip: {
-          trigger: 'axis',
-          axisPointer: { // 坐标轴指示器,坐标轴触发有效
-            type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
-          }
-        },
-        grid: {
-          top: 10,
-          left: '2%',
-          right: '2%',
-          bottom: '3%',
-          containLabel: true
-        },
-        xAxis: [{
-          type: 'category',
-          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
-          axisTick: {
-            alignWithLabel: true
-          }
-        }],
-        yAxis: [{
-          type: 'value',
-          axisTick: {
-            show: false
-          }
-        }],
-        series: [{
-          name: 'pageA',
-          type: 'bar',
-          stack: 'vistors',
-          barWidth: '60%',
-          data: [79, 52, 200, 334, 390, 330, 220],
-          animationDuration
-        }, {
-          name: 'pageB',
-          type: 'bar',
-          stack: 'vistors',
-          barWidth: '60%',
-          data: [80, 52, 200, 334, 390, 330, 220],
-          animationDuration
-        }, {
-          name: 'pageC',
-          type: 'bar',
-          stack: 'vistors',
-          barWidth: '60%',
-          data: [30, 52, 200, 334, 390, 330, 220],
-          animationDuration
-        }]
-      })
-    }
-  }
-}
-</script>

+ 0 - 135
src/views/dashboard/LineChart.vue

@@ -1,135 +0,0 @@
-<template>
-  <div :class="className" :style="{height:height,width:width}" />
-</template>
-
-<script>
-import echarts from 'echarts'
-require('echarts/theme/macarons') // echarts theme
-import resize from './mixins/resize'
-
-export default {
-  mixins: [resize],
-  props: {
-    className: {
-      type: String,
-      default: 'chart'
-    },
-    width: {
-      type: String,
-      default: '100%'
-    },
-    height: {
-      type: String,
-      default: '350px'
-    },
-    autoResize: {
-      type: Boolean,
-      default: true
-    },
-    chartData: {
-      type: Object,
-      required: true
-    }
-  },
-  data() {
-    return {
-      chart: null
-    }
-  },
-  watch: {
-    chartData: {
-      deep: true,
-      handler(val) {
-        this.setOptions(val)
-      }
-    }
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart()
-    })
-  },
-  beforeDestroy() {
-    if (!this.chart) {
-      return
-    }
-    this.chart.dispose()
-    this.chart = null
-  },
-  methods: {
-    initChart() {
-      this.chart = echarts.init(this.$el, 'macarons')
-      this.setOptions(this.chartData)
-    },
-    setOptions({ expectedData, actualData } = {}) {
-      this.chart.setOption({
-        xAxis: {
-          data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
-          boundaryGap: false,
-          axisTick: {
-            show: false
-          }
-        },
-        grid: {
-          left: 10,
-          right: 10,
-          bottom: 20,
-          top: 30,
-          containLabel: true
-        },
-        tooltip: {
-          trigger: 'axis',
-          axisPointer: {
-            type: 'cross'
-          },
-          padding: [5, 10]
-        },
-        yAxis: {
-          axisTick: {
-            show: false
-          }
-        },
-        legend: {
-          data: ['expected', 'actual']
-        },
-        series: [{
-          name: 'expected', itemStyle: {
-            normal: {
-              color: '#FF005A',
-              lineStyle: {
-                color: '#FF005A',
-                width: 2
-              }
-            }
-          },
-          smooth: true,
-          type: 'line',
-          data: expectedData,
-          animationDuration: 2800,
-          animationEasing: 'cubicInOut'
-        },
-        {
-          name: 'actual',
-          smooth: true,
-          type: 'line',
-          itemStyle: {
-            normal: {
-              color: '#3888fa',
-              lineStyle: {
-                color: '#3888fa',
-                width: 2
-              },
-              areaStyle: {
-                color: '#f3f8ff'
-              }
-            }
-          },
-          data: actualData,
-          animationDuration: 2800,
-          animationEasing: 'quadraticOut'
-        }]
-      })
-    }
-  }
-}
-</script>

+ 0 - 181
src/views/dashboard/PanelGroup.vue

@@ -1,181 +0,0 @@
-<template>
-  <el-row :gutter="40" class="panel-group">
-    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
-      <div class="card-panel" @click="handleSetLineChartData('newVisitis')">
-        <div class="card-panel-icon-wrapper icon-people">
-          <svg-icon icon-class="peoples" class-name="card-panel-icon" />
-        </div>
-        <div class="card-panel-description">
-          <div class="card-panel-text">
-            访客
-          </div>
-          <count-to :start-val="0" :end-val="102400" :duration="2600" class="card-panel-num" />
-        </div>
-      </div>
-    </el-col>
-    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
-      <div class="card-panel" @click="handleSetLineChartData('messages')">
-        <div class="card-panel-icon-wrapper icon-message">
-          <svg-icon icon-class="message" class-name="card-panel-icon" />
-        </div>
-        <div class="card-panel-description">
-          <div class="card-panel-text">
-            消息
-          </div>
-          <count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" />
-        </div>
-      </div>
-    </el-col>
-    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
-      <div class="card-panel" @click="handleSetLineChartData('purchases')">
-        <div class="card-panel-icon-wrapper icon-money">
-          <svg-icon icon-class="money" class-name="card-panel-icon" />
-        </div>
-        <div class="card-panel-description">
-          <div class="card-panel-text">
-            金额
-          </div>
-          <count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" />
-        </div>
-      </div>
-    </el-col>
-    <el-col :xs="12" :sm="12" :lg="6" class="card-panel-col">
-      <div class="card-panel" @click="handleSetLineChartData('shoppings')">
-        <div class="card-panel-icon-wrapper icon-shopping">
-          <svg-icon icon-class="shopping" class-name="card-panel-icon" />
-        </div>
-        <div class="card-panel-description">
-          <div class="card-panel-text">
-            订单
-          </div>
-          <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
-        </div>
-      </div>
-    </el-col>
-  </el-row>
-</template>
-
-<script>
-import CountTo from 'vue-count-to'
-
-export default {
-  components: {
-    CountTo
-  },
-  methods: {
-    handleSetLineChartData(type) {
-      this.$emit('handleSetLineChartData', type)
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.panel-group {
-  margin-top: 18px;
-
-  .card-panel-col {
-    margin-bottom: 32px;
-  }
-
-  .card-panel {
-    height: 108px;
-    cursor: pointer;
-    font-size: 12px;
-    position: relative;
-    overflow: hidden;
-    color: #666;
-    background: #fff;
-    box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
-    border-color: rgba(0, 0, 0, .05);
-
-    &:hover {
-      .card-panel-icon-wrapper {
-        color: #fff;
-      }
-
-      .icon-people {
-        background: #40c9c6;
-      }
-
-      .icon-message {
-        background: #36a3f7;
-      }
-
-      .icon-money {
-        background: #f4516c;
-      }
-
-      .icon-shopping {
-        background: #34bfa3
-      }
-    }
-
-    .icon-people {
-      color: #40c9c6;
-    }
-
-    .icon-message {
-      color: #36a3f7;
-    }
-
-    .icon-money {
-      color: #f4516c;
-    }
-
-    .icon-shopping {
-      color: #34bfa3
-    }
-
-    .card-panel-icon-wrapper {
-      float: left;
-      margin: 14px 0 0 14px;
-      padding: 16px;
-      transition: all 0.38s ease-out;
-      border-radius: 6px;
-    }
-
-    .card-panel-icon {
-      float: left;
-      font-size: 48px;
-    }
-
-    .card-panel-description {
-      float: right;
-      font-weight: bold;
-      margin: 26px;
-      margin-left: 0px;
-
-      .card-panel-text {
-        line-height: 18px;
-        color: rgba(0, 0, 0, 0.45);
-        font-size: 16px;
-        margin-bottom: 12px;
-      }
-
-      .card-panel-num {
-        font-size: 20px;
-      }
-    }
-  }
-}
-
-@media (max-width:550px) {
-  .card-panel-description {
-    display: none;
-  }
-
-  .card-panel-icon-wrapper {
-    float: none !important;
-    width: 100%;
-    height: 100%;
-    margin: 0 !important;
-
-    .svg-icon {
-      display: block;
-      margin: 14px auto !important;
-      float: none !important;
-    }
-  }
-}
-</style>

+ 0 - 79
src/views/dashboard/PieChart.vue

@@ -1,79 +0,0 @@
-<template>
-  <div :class="className" :style="{height:height,width:width}" />
-</template>
-
-<script>
-import echarts from 'echarts'
-require('echarts/theme/macarons') // echarts theme
-import resize from './mixins/resize'
-
-export default {
-  mixins: [resize],
-  props: {
-    className: {
-      type: String,
-      default: 'chart'
-    },
-    width: {
-      type: String,
-      default: '100%'
-    },
-    height: {
-      type: String,
-      default: '300px'
-    }
-  },
-  data() {
-    return {
-      chart: null
-    }
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart()
-    })
-  },
-  beforeDestroy() {
-    if (!this.chart) {
-      return
-    }
-    this.chart.dispose()
-    this.chart = null
-  },
-  methods: {
-    initChart() {
-      this.chart = echarts.init(this.$el, 'macarons')
-
-      this.chart.setOption({
-        tooltip: {
-          trigger: 'item',
-          formatter: '{a} <br/>{b} : {c} ({d}%)'
-        },
-        legend: {
-          left: 'center',
-          bottom: '10',
-          data: ['Industries', 'Technology', 'Forex', 'Gold', 'Forecasts']
-        },
-        series: [
-          {
-            name: 'WEEKLY WRITE ARTICLES',
-            type: 'pie',
-            roseType: 'radius',
-            radius: [15, 95],
-            center: ['50%', '38%'],
-            data: [
-              { value: 320, name: 'Industries' },
-              { value: 240, name: 'Technology' },
-              { value: 149, name: 'Forex' },
-              { value: 100, name: 'Gold' },
-              { value: 59, name: 'Forecasts' }
-            ],
-            animationEasing: 'cubicInOut',
-            animationDuration: 2600
-          }
-        ]
-      })
-    }
-  }
-}
-</script>

+ 0 - 116
src/views/dashboard/RaddarChart.vue

@@ -1,116 +0,0 @@
-<template>
-  <div :class="className" :style="{height:height,width:width}" />
-</template>
-
-<script>
-import echarts from 'echarts'
-require('echarts/theme/macarons') // echarts theme
-import resize from './mixins/resize'
-
-const animationDuration = 3000
-
-export default {
-  mixins: [resize],
-  props: {
-    className: {
-      type: String,
-      default: 'chart'
-    },
-    width: {
-      type: String,
-      default: '100%'
-    },
-    height: {
-      type: String,
-      default: '300px'
-    }
-  },
-  data() {
-    return {
-      chart: null
-    }
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart()
-    })
-  },
-  beforeDestroy() {
-    if (!this.chart) {
-      return
-    }
-    this.chart.dispose()
-    this.chart = null
-  },
-  methods: {
-    initChart() {
-      this.chart = echarts.init(this.$el, 'macarons')
-
-      this.chart.setOption({
-        tooltip: {
-          trigger: 'axis',
-          axisPointer: { // 坐标轴指示器,坐标轴触发有效
-            type: 'shadow' // 默认为直线,可选为:'line' | 'shadow'
-          }
-        },
-        radar: {
-          radius: '66%',
-          center: ['50%', '42%'],
-          splitNumber: 8,
-          splitArea: {
-            areaStyle: {
-              color: 'rgba(127,95,132,.3)',
-              opacity: 1,
-              shadowBlur: 45,
-              shadowColor: 'rgba(0,0,0,.5)',
-              shadowOffsetX: 0,
-              shadowOffsetY: 15
-            }
-          },
-          indicator: [
-            { name: 'Sales', max: 10000 },
-            { name: 'Administration', max: 20000 },
-            { name: 'Information Techology', max: 20000 },
-            { name: 'Customer Support', max: 20000 },
-            { name: 'Development', max: 20000 },
-            { name: 'Marketing', max: 20000 }
-          ]
-        },
-        legend: {
-          left: 'center',
-          bottom: '10',
-          data: ['Allocated Budget', 'Expected Spending', 'Actual Spending']
-        },
-        series: [{
-          type: 'radar',
-          symbolSize: 0,
-          areaStyle: {
-            normal: {
-              shadowBlur: 13,
-              shadowColor: 'rgba(0,0,0,.2)',
-              shadowOffsetX: 0,
-              shadowOffsetY: 10,
-              opacity: 1
-            }
-          },
-          data: [
-            {
-              value: [5000, 7000, 12000, 11000, 15000, 14000],
-              name: 'Allocated Budget'
-            },
-            {
-              value: [4000, 9000, 15000, 15000, 13000, 11000],
-              name: 'Expected Spending'
-            },
-            {
-              value: [5500, 11000, 12000, 15000, 12000, 12000],
-              name: 'Actual Spending'
-            }
-          ],
-          animationDuration: animationDuration
-        }]
-      })
-    }
-  }
-}
-</script>

+ 0 - 56
src/views/dashboard/mixins/resize.js

@@ -1,56 +0,0 @@
-import { debounce } from '@/utils'
-
-export default {
-  data() {
-    return {
-      $_sidebarElm: null,
-      $_resizeHandler: null
-    }
-  },
-  mounted() {
-    this.initListener()
-  },
-  activated() {
-    if (!this.$_resizeHandler) {
-      // avoid duplication init
-      this.initListener()
-    }
-
-    // when keep-alive chart activated, auto resize
-    this.resize()
-  },
-  beforeDestroy() {
-    this.destroyListener()
-  },
-  deactivated() {
-    this.destroyListener()
-  },
-  methods: {
-    // use $_ for mixins properties
-    // https://vuejs.org/v2/style-guide/index.html#Private-property-names-essential
-    $_sidebarResizeHandler(e) {
-      if (e.propertyName === 'width') {
-        this.$_resizeHandler()
-      }
-    },
-    initListener() {
-      this.$_resizeHandler = debounce(() => {
-        this.resize()
-      }, 100)
-      window.addEventListener('resize', this.$_resizeHandler)
-
-      this.$_sidebarElm = document.getElementsByClassName('sidebar-container')[0]
-      this.$_sidebarElm && this.$_sidebarElm.addEventListener('transitionend', this.$_sidebarResizeHandler)
-    },
-    destroyListener() {
-      window.removeEventListener('resize', this.$_resizeHandler)
-      this.$_resizeHandler = null
-
-      this.$_sidebarElm && this.$_sidebarElm.removeEventListener('transitionend', this.$_sidebarResizeHandler)
-    },
-    resize() {
-      const { chart } = this
-      chart && chart.resize()
-    }
-  }
-}

+ 0 - 199
src/views/feedback/index.vue

@@ -1,199 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="用户姓名" prop="name">
-        <el-input
-          v-model="queryParams.name"
-          placeholder="请输入用户姓名"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="手机号码" prop="phone">
-        <el-input
-          v-model="queryParams.phone"
-          placeholder="请输入手机号码"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-        >导出
-        </el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-table v-loading="loading" :data="feedbackList">
-      <el-table-column label="用户姓名" align="center" prop="name"/>
-      <el-table-column label="手机号码" align="center" prop="phone"/>
-      <el-table-column label="标题" align="center" prop="title"/>
-      <el-table-column label="状态" align="center" prop="statusText"/>
-      <el-table-column label="创建时间" align="center" prop="createTime"/>
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
-                     v-hasPermi="['feedback:info:edit']">已查收
-          </el-button>
-          <el-button size="mini" type="text" icon="el-icon-tickets" @click="handleDetailed(scope.row)"
-                     v-hasPermi="['feedback:info:detailed']">详情
-          </el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改微信用户管理对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="用户姓名" prop="name">
-          <el-input v-model="form.name" disabled placeholder="请输入用户姓名"/>
-        </el-form-item>
-        <el-form-item label="手机号码" prop="phone">
-          <el-input v-model="form.phone" disabled placeholder="请输入手机号码"/>
-        </el-form-item>
-        <el-form-item label="标题" prop="title">
-          <el-input v-model="form.title" disabled placeholder="请输入微信标题"/>
-        </el-form-item>
-        <el-form-item label="内容" prop="content">
-          <el-input v-model="form.content" disabled type="textarea" placeholder="请输入内容"/>
-        </el-form-item>
-        <el-form-item label="回复" prop="title">
-          <el-input v-model="form.remark" disabled/>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button @click="cancel">关 闭</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import {getFeedback, updateFeedback} from "@/api/feedback/index";
-
-export default {
-  name: "User",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 微信用户管理表格数据
-      feedbackList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {}
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询微信用户管理列表 */
-    getList() {
-      this.loading = true;
-      this.queryParams.params = {};
-      getFeedback(this.queryParams).then(response => {
-        this.feedbackList = response.rows.map(e => {
-          if (e.status == '0') e.statusText = '待查收';
-          if (e.status == '1') e.statusText = '已查收';
-          return e;
-        });
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {};
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.daterangeBirthday = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 详情按钮操作 */
-    handleDetailed(row) {
-      this.reset();
-      this.form = {...row};
-      this.open = true;
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.$prompt('请输入回复内容', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-      }).then(({value}) => {
-        updateFeedback({
-          ...row,
-          status: '1',
-          remark: value !== '' ? value : '非常感谢您提供的宝贵建议'
-        }).then(response => {
-          this.$modal.msgSuccess("查收成功");
-          this.getList();
-        });
-      }).catch(() => {
-        this.$message({
-          type: 'info',
-          message: '取消输入'
-        });
-      });
-
-
-    },
-
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('biz/feedback/export', {
-        ...this.queryParams
-      }, `意见反馈_${new Date().getTime()}.xlsx`)
-    }
-  }
-};
-</script>

+ 0 - 98
src/views/index_v1.vue

@@ -1,98 +0,0 @@
-<template>
-  <div class="dashboard-editor-container">
-
-    <panel-group @handleSetLineChartData="handleSetLineChartData" />
-
-    <el-row style="background:#fff;padding:16px 16px 0;margin-bottom:32px;">
-      <line-chart :chart-data="lineChartData" />
-    </el-row>
-
-    <el-row :gutter="32">
-      <el-col :xs="24" :sm="24" :lg="8">
-        <div class="chart-wrapper">
-          <raddar-chart />
-        </div>
-      </el-col>
-      <el-col :xs="24" :sm="24" :lg="8">
-        <div class="chart-wrapper">
-          <pie-chart />
-        </div>
-      </el-col>
-      <el-col :xs="24" :sm="24" :lg="8">
-        <div class="chart-wrapper">
-          <bar-chart />
-        </div>
-      </el-col>
-    </el-row>
-
-    
-  </div>
-</template>
-
-<script>
-import PanelGroup from './dashboard/PanelGroup'
-import LineChart from './dashboard/LineChart'
-import RaddarChart from './dashboard/RaddarChart'
-import PieChart from './dashboard/PieChart'
-import BarChart from './dashboard/BarChart'
-
-const lineChartData = {
-  newVisitis: {
-    expectedData: [100, 120, 161, 134, 105, 160, 165],
-    actualData: [120, 82, 91, 154, 162, 140, 145]
-  },
-  messages: {
-    expectedData: [200, 192, 120, 144, 160, 130, 140],
-    actualData: [180, 160, 151, 106, 145, 150, 130]
-  },
-  purchases: {
-    expectedData: [80, 100, 121, 104, 105, 90, 100],
-    actualData: [120, 90, 100, 138, 142, 130, 130]
-  },
-  shoppings: {
-    expectedData: [130, 140, 141, 142, 145, 150, 160],
-    actualData: [120, 82, 91, 154, 162, 140, 130]
-  }
-}
-
-export default {
-  name: 'Index',
-  components: {
-    PanelGroup,
-    LineChart,
-    RaddarChart,
-    PieChart,
-    BarChart
-  },
-  data() {
-    return {
-      lineChartData: lineChartData.newVisitis
-    }
-  },
-  methods: {
-    handleSetLineChartData(type) {
-      this.lineChartData = lineChartData[type]
-    }
-  }
-}
-</script>
-
-<style lang="scss" scoped>
-.dashboard-editor-container {
-  padding: 32px;
-  background-color: rgb(240, 242, 245);
-  position: relative;
-
-  .chart-wrapper {
-    background: #fff;
-    padding: 16px 16px 0;
-    margin-bottom: 32px;
-  }
-}
-
-@media (max-width:1024px) {
-  .chart-wrapper {
-    padding: 8px;
-  }
-}
-</style>

+ 0 - 19
src/views/infoReview/customconfig/custom_essc.js

@@ -1,19 +0,0 @@
-export default {
-    listFileds: [
-      { label: "标题", name: "title", filter: true },
-      { label: "售出状态", name: "meta.status", filter: true, placeholder: "选择状态", formater: "dict:sell_status" },
-      { label: "联系人", name: "meta.user" },
-      { label: "联系电话", name: "meta.phone" },
-    ],
-    formFiled: [
-      { label: "标题", name: "title" },
-      { label: "联系人", name: "meta.user" },
-      { label: "联系电话", name: "meta.phone" },
-      { label: "审核状态", name: "review", formater: "dict:review_status" },
-      { label: "售出状态", name: "meta.status", formater: "dict:sell_status" },
-      { label: "物品分类", name: "meta.goodtype", formater: "dict:used_type" },
-      { label: "图片", name: "meta.media", formater: "imageUpload", limit: 3 },
-      { label: "审核意见", name: "comment" },
-      { label: "详情", name: "content", formater: 'textarea' },
-    ],
-  };

+ 0 - 17
src/views/infoReview/customconfig/custom_fsbw.js

@@ -1,17 +0,0 @@
-export default {
-  listFileds: [
-    { label: "标题", name: "title", filter: true },
-    { label: "联系人", name: "meta.user" },
-    { label: "联系电话", name: "meta.phone" },
-  ],
-  formFiled: [
-    { label: "门前图片", name: "meta.media", formater: "imageUpload", limit: 3 },
-    { label: "标题", name: "title" },
-    { label: "联系人", name: "meta.user" },
-    { label: "联系电话", name: "meta.phone" },
-    { label: "工作地址", name: "meta.address" },
-    { label: "审核状态", name: "review", formater: "dict:review_status" },
-    { label: "审核意见", name: "comment" },
-    { label: "详情", name: "content", formater: 'textarea' },
-  ],
-};

+ 0 - 19
src/views/infoReview/customconfig/custom_fucs.js

@@ -1,19 +0,0 @@
-export default {
-    listFileds: [
-      { label: "标题", name: "title", filter: true },
-      { label: "售出状态", name: "meta.status", filter: true, placeholder: "选择状态", formater: "dict:sell_status" },
-      { label: "联系人", name: "meta.user" },
-      { label: "联系电话", name: "meta.phone" },
-    ],
-    formFiled: [
-      { label: "标题", name: "title" },
-      { label: "联系人", name: "meta.user" },
-      { label: "联系电话", name: "meta.phone" },
-      { label: "房屋地址", name: "meta.address" },
-      { label: "审核状态", name: "review", formater: "dict:review_status" },
-      { label: "售出状态", name: "meta.status", formater: "dict:sell_status" },
-      { label: "图片", name: "meta.media", formater: "imageUpload", limit: 3 },
-      { label: "审核意见", name: "comment" },
-      { label: "详情", name: "content", formater: 'textarea' },
-    ],
-  };

+ 0 - 19
src/views/infoReview/customconfig/custom_fucz.js

@@ -1,19 +0,0 @@
-export default {
-    listFileds: [
-      { label: "标题", name: "title", filter: true },
-      { label: "出租状态", name: "meta.status", filter: true, placeholder: "选择状态", formater: "dict:hire_status" },
-      { label: "联系人", name: "meta.user" },
-      { label: "联系电话", name: "meta.phone" },
-    ],
-    formFiled: [
-      { label: "标题", name: "title" },
-      { label: "联系人", name: "meta.user" },
-      { label: "联系电话", name: "meta.phone" },
-      { label: "房屋地址", name: "meta.address" },
-      { label: "审核状态", name: "review", formater: "dict:review_status" },
-      { label: "出租状态", name: "meta.status", formater: "dict:hire_status" },
-      { label: "图片", name: "meta.media", formater: "imageUpload", limit: 3 },
-      { label: "审核意见", name: "comment" },
-      { label: "详情", name: "content", formater: 'textarea' },
-    ],
-  };

+ 0 - 17
src/views/infoReview/customconfig/custom_jzfw.js

@@ -1,17 +0,0 @@
-export default {
-    listFileds: [
-      { label: "标题", name: "title", filter: true },
-      { label: "联系人", name: "meta.user" },
-      { label: "联系电话", name: "meta.phone" },
-    ],
-    formFiled: [
-      { label: "门前图片", name: "meta.media", formater: "imageUpload", limit: 3 },
-      { label: "标题", name: "title" },
-      { label: "联系人", name: "meta.user" },
-      { label: "联系电话", name: "meta.phone" },
-      { label: "工作地址", name: "meta.address" },
-      { label: "审核状态", name: "review", formater: "dict:review_status" },
-      { label: "审核意见", name: "comment" },
-      { label: "详情", name: "content", formater: 'textarea' },
-    ],
-  };

+ 0 - 20
src/views/infoReview/customconfig/custom_qz.js

@@ -1,20 +0,0 @@
-export default {
-    listFileds: [
-      { label: "标题", name: "title", filter: true },
-      { label: "求职状态", name: "meta.postStatus", filter: true, placeholder: "选择状态", formater: "dict:post_status" },
-      { label: "联系人", name: "meta.user" },
-      { label: "联系电话", name: "meta.phone" },
-    ],
-    formFiled: [
-      { label: "标题", name: "title" },
-      { label: "联系人", name: "meta.user" },
-      { label: "联系电话", name: "meta.phone" },
-      { label: "审核状态", name: "review", formater: "dict:review_status" },
-      { label: "求职状态", name: "meta.postStatus", formater: "dict:post_status" },
-      { label: "职位行业", name: "meta.industry", formater: "slot" },
-      { label: "职位类别", name: "meta.type", formater: "slot" },
-      { label: "图片", name: "meta.media", formater: "imageUpload", limit: 3 },
-      { label: "审核意见", name: "comment" },
-      { label: "详情", name: "content", formater: 'textarea' },
-    ],
-  };

+ 0 - 21
src/views/infoReview/customconfig/custom_zp.js

@@ -1,21 +0,0 @@
-export default {
-    listFileds: [
-      { label: "标题", name: "title", filter: true },
-      { label: "招聘状态", name: "meta.recruitStatus", filter: true, placeholder: "选择状态", formater: "dict:recruit_status" },
-      { label: "联系人", name: "meta.user" },
-      { label: "联系电话", name: "meta.phone" },
-    ],
-    formFiled: [
-      { label: "标题", name: "title" },
-      { label: "联系人", name: "meta.user" },
-      { label: "联系电话", name: "meta.phone" },
-      { label: "审核状态", name: "review", formater: "dict:review_status" },
-      { label: "招聘状态", name: "meta.recruitStatus", formater: "dict:recruit_status" },
-      { label: "职位行业", name: "meta.industry", formater: "slot" },
-      { label: "职位类别", name: "meta.type", formater: "slot" },
-      { label: "工作地址", name: "meta.address" },
-      { label: "图片", name: "meta.media", formater: "imageUpload", limit: 3 },
-      { label: "审核意见", name: "comment" },
-      { label: "详情", name: "content", formater: 'textarea' },
-    ],
-  };

+ 0 - 168
src/views/infoReview/index.vue

@@ -1,168 +0,0 @@
-<template>
-    <div class="app-container" v-loading="loading">
-      <FilterList :useBtn="review == '1'" :readOnly="false" v-if="tableData" :pagination="true" :options="options" :operate="false" :filed="listFileds" :tableData="tableData" :total="total" @query="query" @edit="listEdit" @delete="listDel" @add="add">
-        <template v-slot:tablesOperate="{ scope }">
-          <el-button type="text" size="mini" @click="handle(scope.row.postId, '1')" v-if="scope.row.reviewVal == 0">审核</el-button>
-          <el-button type="text" size="mini" @click="handle(scope.row.postId, '2')" v-if="scope.row.reviewVal == 0">驳回</el-button>
-          <el-button type="text" size="mini" @click="listEdit(scope.row)">详情</el-button>
-          <el-button type="text" size="mini" @click="listDel(scope.row)">删除</el-button>
-        </template>
-      </FilterList>
-      <el-dialog :title="dialogInfo.title" :visible.sync="dialogInfo.dialogVisible" :width="dialogInfo.width">
-        <dynamicForm :readOnly="readOnly" ref="dynamicForm" v-if="formFiled && dialogInfo.dialogVisible" :filed="formFiled" :data="formData" @save="formSave">
-          <template v-slot:formItem="{ item, formdata }">
-            <!-- 行业 -->
-            <el-select :disabled="readOnly" v-if="item.name == 'meta.industry'" v-model="formdata['meta.industry']" @change="industryChage">
-              <el-option v-for="dict in dict.type.industry_type" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
-            </el-select>
-            <!-- 行业类别 -->
-            <el-select :disabled="readOnly" v-if="item.name == 'meta.type'" v-model="formdata['meta.type']">
-              <el-option v-for="dict in postTypeList" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
-            </el-select>
-          </template>
-        </dynamicForm>
-      </el-dialog>
-    </div>
-  </template>
-  
-  <script>
-  import _ from 'lodash';
-  import { cmsAdd, cmsUpdate, cmsDel, cmsQuery, cmsFetch, cmsReview } from "@/api/cms/index";
-  export default {
-    name: "Info",
-    dicts: ['term_type', 'custom_type', 'industry_type', 'post_type'],
-    data() {
-      return {
-        postTypeList: [],
-        tableData: [],
-        total: 0,
-        listFileds: [],
-        dialogInfo: {
-          title: "",
-          dialogVisible: false,
-          width: "50%",
-        },
-        formFiled: [],
-        formData: {},
-        type: this.$route.query.type,
-        loading: false,
-        operation: [],
-        options: {
-          width: '180'
-        },
-        alias: this.$route.query.alias,
-        termId: '',
-        readOnly: false
-      };
-    },
-    async created() {
-      const models = require(`./${this.$route.query.type}config/${this.$route.query.alias}.js`);
-      this.review = this.$route.query.review;
-      const { formFiled, listFileds } = models.default;
-      this.formFiled = formFiled;
-      this.listFileds = listFileds;
-      this.nodeClick();
-    },
-    methods: {
-      // 列表查询
-      async query(e) {
-        this.loading = true;
-        const review = e?.review ? e.review : this.review;
-        const res = await cmsQuery({ ...e, pageNum: e?.pageNum ?? 1, pageSize: e?.pageSize ?? 10, review }, this.type, this.alias);
-        if (res.code == 200) {
-          this.tableData = res.rows.map(e => {
-            for (const key in e.meta) {
-              e[`meta.${key}`] = e.meta[key]
-            }
-            e.reviewVal = e.review;
-            return e;
-          });
-          this.total = res.total;
-        }
-        this.loading = false;
-      },
-      // 列表详情
-      async listEdit(e) {
-        this.readOnly = true;
-        this.loading = true;
-        const res = await cmsFetch('_' + e['postId'], this.type);
-        if (res.code == 200) {
-          this.formData = { ...res.data, url: res.data.image, topStatus: String(res.data.topStatus) };
-          for (const key in this.formData.meta) {
-            this.formData[`meta.${key}`] = this.formData.meta[key]
-          }
-          if(this.formData['meta.industry']) this.industryChage(this.formData['meta.industry']);
-          const dict = this.dict.type.custom_type.find(j => j.value == this.alias);
-          this.dialogInfo.title = `修改${dict.label}`;
-          this.dialogInfo.dialogVisible = true;
-        }
-        this.loading = false;
-      },
-      // 列表删除
-      async listDel(e) {
-        const id = e['postId']
-        const type = this.type;
-        this.$modal.confirm('是否确认删除"').then(function() {
-          return cmsDel(type, id);
-        }).then(() => {
-          this.query();
-          this.$modal.msgSuccess('删除成功');
-        }).catch(() => {});
-      },
-      // 审核操作
-      async handle(postId, status) {
-        if (status == '1') {
-          this.$modal.confirm('是否确认审核"').then(function() {
-            return cmsReview({ postId, review: status });
-          }).then(() => {
-            this.query();
-            this.$modal.msgSuccess("审核成功");
-          }).catch(() => {});
-        }else {
-          this.$modal.prompt('请输入驳回原因').then(({ value }) => {
-            return cmsReview({ postId, review: status, comment: value });
-          }).then(() => {
-            this.query();
-            this.$modal.msgSuccess("驳回成功");
-          }).catch(() => {});
-        }
-      },
-      // 添加
-      async add() {
-        this.readOnly = false;
-        this.formData = {};
-        const dict = this.dict.type.custom_type.find(j => j.value == this.alias);
-        if (dict) this.dialogInfo.title = `添加${dict.label}`;
-        this.dialogInfo.dialogVisible = true;
-      },
-      // 表单保存
-      async formSave(e) {
-        this.loading = true;
-        let res;
-        if (e.meta.islink && e.meta.islink == '1') e.meta = {};
-        // 修改
-        if(e['postId']) res = await cmsUpdate(e, this.type);
-          // 新增
-        if(!e['postId']) res = await cmsAdd({ ...e, contentType: this.type, catalogIds: this.termId ? [this.termId] : [] }, this.type);
-        if (res.code == 200) {
-          this.$modal.msgSuccess(`${e['postId'] ? '修改' : '新增'}成功`);
-          this.dialogInfo.dialogVisible = false;
-          this.query();
-        }
-        this.loading = false;
-      },
-      async nodeClick() {
-        const res = await cmsFetch(this.alias, 'catalog');
-        if (res.code == 200) this.termId = res.data.termId;
-        this.query();
-      },
-      // 行业改变
-      industryChage(e) {
-        this.postTypeList = [];
-        const list = this.dict.type.post_type.filter(j => j.raw.remark == e);
-        this.postTypeList = list;
-        if (this.$refs.dynamicForm) this.$refs.dynamicForm.setForm('meta.type', null)
-      }
-    }
-  };
-  </script>

+ 0 - 88
src/views/integral/log.vue

@@ -1,88 +0,0 @@
-<template>
-    <div class="app-container" v-loading="loading">
-      <FilterList ref="list" v-if="tableData" :operate="false" :useBtn="false" :options="options" :filed="listFileds" :tableData="tableData" :total="total" @query="userQuery">
-        <template v-slot:tablesOperate="{ scope }">
-          <el-button type="text" size="mini" @click="listDetails(scope.row, 'add')">变更记录</el-button>
-        </template>
-      </FilterList>
-      <el-dialog :title="dialogInfo.title" :visible.sync="dialogInfo.dialogVisible" :width="dialogInfo.width">
-        <FilterList v-if="dialogInfo.dialogVisible" ref="log" :readOnly="true" :filter="false" :operate="false" :useBtn="false" :filed="logFileds" :tableData="logData" :total="logTotal" @query="query"></FilterList>
-      </el-dialog>
-    </div>
-  </template>
-  
-  <script>
-  import _ from 'lodash';
-  import { logQuery } from "@/api/integral/log";
-  import { userQuery } from "@/api/integral/user";
-  export default {
-    name: "Info",
-    dicts: ['vote_status'],
-    data() {
-      return {
-          pagination: true,
-          tableData: [],
-          total: 0,
-          listFileds: [
-            { label: "姓名", name: "user.name", filter: true },
-            { label: "电话", name: "user.phone", filter: true },
-          ],
-          dialogInfo: {
-            title: "",
-            dialogVisible: false,
-            width: "50%",
-          },
-          logFileds: [
-            { label: "积分变更类型", name: "changeType" },
-            { label: "积分变更数值", name: "changePoint" },
-            { label: "变更前积分", name: "last" },
-            { label: "变更后积分", name: "point" },
-            { label: "创建时间", name: "createTime" },
-            { label: "积分变更原因", name: "reason" },
-          ],
-          formData: {},
-          loading: false,
-          options: {},
-          logData: [],
-          logTotal: 0,
-      };
-    },
-    async created() {
-      this.userQuery();
-    },
-    methods: {
-      // 用户查询
-      async userQuery(e) {
-        this.loading = true;
-        const res = await userQuery({ ...e, pageNum: e?.pageNum ?? 1, pageSize: e?.pageSize ?? 10 });
-        if (res.code == 200) {
-          this.tableData = res.rows.map(e => {
-            for (const key in e.user) {
-              e[`user.${key}`] = e.user[key]
-            }
-            return e;
-          });
-          this.total = res.total;
-        }
-        this.loading = false;
-      },
-      // 列表查询
-      async query(e) {
-        this.loading = true;
-        const res = await logQuery({ ...e, pageNum: e?.pageNum ?? 1, pageSize: e?.pageSize ?? 10, userId: this.formData.userId });
-        if (res.code == 200) {
-          this.logData = res.rows.map(e=> ({ ...e, changeType: e.changeType == 'add' ? '增加' : '减少'  }));
-          this.logTotal = res.total;
-        }
-        this.loading = false;
-      },
-      // 列表修改
-      async listDetails(e, type) {
-        this.formData = { ...e, type, num: e.point };
-        await this.query();
-        this.dialogInfo.title = `变更详情`;
-        this.dialogInfo.dialogVisible = true;
-      },
-    }
-  };
-  </script>

+ 0 - 110
src/views/integral/rule.vue

@@ -1,110 +0,0 @@
-<template>
-  <div class="app-container" v-loading="loading">
-    <FilterList v-if="tableData" :operate="false" :options="options" :filed="listFileds" :tableData="tableData" :total="total" @query="query" @add="add">
-        <template v-slot:tablesOperate="{ scope }">
-          <el-button type="text" size="mini" @click="listEdit(scope.row)">修改</el-button>
-          <el-button type="text" size="mini" @click="listDel(scope.row)">删除</el-button>
-        </template>
-      </FilterList>
-    <el-dialog :title="dialogInfo.title" :visible.sync="dialogInfo.dialogVisible" :width="dialogInfo.width">
-      <dynamicForm ref="dynamicForm" :readOnly="false" v-if="formFiled && dialogInfo.dialogVisible" :filed="formFiled" :data="formData" @save="formSave"></dynamicForm>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import _ from 'lodash';
-import { ruleAdd, ruleDel, ruleUpdate, ruleQuery, ruleFetch } from "@/api/integral/rule";
-export default {
-  name: "Info",
-  dicts: ['vote_status'],
-  data() {
-    return {
-        pagination: true,
-        tableData: [],
-        total: 0,
-        listFileds: [
-          { label: "规则名称", name: "name" },
-          { label: "行为编码", name: "behavior" },
-          { label: "任务完成奖励数值", name: "rewardCount" },
-          { label: "规则描述", name: "description" },
-        ],
-        dialogInfo: {
-          title: "",
-          dialogVisible: false,
-          width: "50%",
-        },
-        formFiled: [
-          { label: "规则名称", name: "name" },
-          { label: "行为编码", name: "behavior" },
-          { label: "任务完成奖励数值", name: "rewardCount" },
-          { label: "规则描述", name: "description", formater: 'textarea' },
-        ],
-        formData: {},
-        loading: false,
-        options: {}
-    };
-  },
-  async created() {
-    this.query();
-  },
-  methods: {
-    // 列表新增
-    async add () {
-      this.formData = {};
-      this.dialogInfo.title = `新增规则`;
-      this.dialogInfo.dialogVisible = true;
-    },
-    // 列表查询
-    async query(e) {
-      this.loading = true;
-      const res = await ruleQuery({ ...e, pageNum: e?.pageNum ?? 1, pageSize: e?.pageSize ?? 10 });
-      if (res.code == 200) {
-        this.tableData = res.rows;
-        this.total = res.total;
-      }
-      this.loading = false;
-    },
-    // 列表修改
-    async listEdit(e) {
-      this.loading = true;
-      const res = await ruleFetch(e.id);
-      if (res.code == 200) {
-        this.formData = res.data;
-        this.dialogInfo.title = `规则修改`;
-        this.dialogInfo.dialogVisible = true;
-      }
-      this.loading = false;
-    },
-    // 列表删除
-    async listDel(e) {
-      this.loading = true;
-      this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { type: 'warning' })
-      .then(async () => {
-        const res = await ruleDel([e.id]);
-        if (res.code == 200) {
-          this.$modal.msgSuccess('删除成功');
-          this.query();
-        }
-        this.loading = false;
-      })
-      .catch(_ => {});
-    },
-    // 表单保存
-    async formSave(e) {
-      this.loading = true;
-      let res;
-      // 修改
-      if(e.id) res = await ruleUpdate(e, e.id);
-        // 新增
-      if(!e.id) res = await ruleAdd(e);
-      if (res.code == 200) {
-        this.$modal.msgSuccess(`${e.id ? '修改' : '新增'}成功`);
-        this.dialogInfo.dialogVisible = false;
-        this.query();
-      }
-      this.loading = false;
-    }
-  }
-};
-</script>

+ 0 - 83
src/views/integral/user.vue

@@ -1,83 +0,0 @@
-<template>
-    <div class="app-container" v-loading="loading">
-      <FilterList :operate="false" :useBtn="false" :options="options" :filed="listFileds" :tableData="tableData" :total="total" @query="query">
-          <template v-slot:tablesOperate="{ scope }">
-            <el-button type="text" size="mini" @click="listEdit(scope.row, 'add')">增加积分</el-button>
-            <el-button type="text" size="mini" @click="listEdit(scope.row, 'subtract')">减少积分</el-button>
-          </template>
-        </FilterList>
-      <el-dialog :title="dialogInfo.title" :visible.sync="dialogInfo.dialogVisible" :width="dialogInfo.width">
-        <dynamicForm ref="dynamicForm" :readOnly="false" v-if="formFiled && dialogInfo.dialogVisible" :filed="formFiled" :data="formData" @save="formSave"></dynamicForm>
-      </el-dialog>
-    </div>
-  </template>
-  
-  <script>
-  import _ from 'lodash';
-  import { userUpdate, userQuery } from "@/api/integral/user";
-  export default {
-    name: "Info",
-    dicts: ['vote_status'],
-    data() {
-      return {
-          pagination: true,
-          tableData: [],
-          total: 0,
-          listFileds: [
-            { label: "姓名", name: "user.name", filter: true },
-            { label: "电话", name: "user.phone", filter: true },
-            { label: "积分", name: "point" },
-          ],
-          dialogInfo: {
-            title: "",
-            dialogVisible: false,
-            width: "50%",
-          },
-          formFiled: [
-            { label: "积分", name: "num" },
-            { label: "变更原因", name: "reason", formater: 'textarea' },
-          ],
-          formData: {},
-          loading: false,
-          options: {}
-      };
-    },
-    async created() {
-      this.query();
-    },
-    methods: {
-      // 列表查询
-      async query(e) {
-        this.loading = true;
-        const res = await userQuery({ ...e, pageNum: e?.pageNum ?? 1, pageSize: e?.pageSize ?? 10 });
-        if (res.code == 200) {
-          this.tableData = res.rows.map(e => {
-            for (const key in e.user) {
-              e[`user.${key}`] = e.user[key]
-            }
-            return e;
-          });
-          this.total = res.total;
-        }
-        this.loading = false;
-      },
-      // 列表修改
-      async listEdit(e, type) {
-        this.formData = { ...e, type, num: e.point };
-        this.dialogInfo.title = `积分修改`;
-        this.dialogInfo.dialogVisible = true;
-      },
-      // 表单保存
-      async formSave(e) {
-        this.loading = true;
-        const res = await userUpdate(e, e.id);
-        if (res.code == 200) {
-          this.$modal.msgSuccess(`修改成功`);
-          this.dialogInfo.dialogVisible = false;
-          this.query();
-        }
-        this.loading = false;
-      }
-    }
-  };
-  </script>

+ 0 - 351
src/views/lostfound/index.vue

@@ -1,351 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="标题" prop="phone">
-        <el-input
-          v-model="queryParams.header"
-          placeholder="请输入标题"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="电话" prop="phone">
-        <el-input
-          v-model="queryParams.phone"
-          placeholder="请输入电话"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="审核状态" prop="status">
-      <el-select clearable v-model="queryParams.status" placeholder="请选择">
-          <el-option v-for="dict in dict.type.review_status" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
-      </el-select>
-      </el-form-item>
-      <el-form-item label="领取状态" prop="lostFoundStatus">
-        <el-select clearable v-if="type == 'swzl'" v-model="queryParams.lostFoundStatus" placeholder="请选择">
-            <el-option v-for="dict in dict.type.claim_status" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
-        </el-select>
-        <el-select clearable v-if="type == 'xwqs'" v-model="queryParams.lostFoundStatus" placeholder="请选择">
-            <el-option v-for="dict in dict.type.lookfor_status" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
-        </el-select>
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['lostfound:lostfound:add']"
-        >新增</el-button>
-      </el-col>
-    </el-row>
-
-    <el-table v-loading="loading" :data="lostfoundList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="标题" align="center" prop="header" />
-      <el-table-column label="图片" align="center" prop="photo" width="100">
-        <template slot-scope="scope">
-          <image-preview :src="scope.row.photo" :width="50" :height="50"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="地点" align="center" prop="place" />
-      <el-table-column label="时间" align="center" prop="findTime" width="180">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.findTime, '{y}-{m}-{d}') }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column label="电话" align="center" prop="phone" />
-      <el-table-column label="审核状态" align="center" prop="statusText" />
-      <el-table-column label="领取状态" align="center" prop="lostFoundStatusText" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-check"
-            @click="handleVerify({ ...scope.row, verify: '0' })"
-            v-if="scope.row.status == '0'"
-          >通过</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-check"
-            @click="handleVerify({ ...scope.row, verify: '1' })"
-            v-if="scope.row.status == '0'"
-          >驳回</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改失物寻物对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="标题" prop="header">
-          <el-input v-model="form.header" type="text" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="图片">
-          <image-upload :limit="1" v-model="form.photo"/>
-        </el-form-item>
-        <el-form-item label="描述" prop="description">
-          <el-input v-model="form.description" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="领取状态" prop="origin">
-          <el-select v-if="type == 'swzl'" v-model="form.lostFoundStatus" placeholder="请选择">
-            <el-option v-for="dict in dict.type.claim_status" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
-          </el-select>
-          <el-select v-if="type == 'xwqs'" v-model="form.lostFoundStatus" placeholder="请选择">
-            <el-option v-for="dict in dict.type.lookfor_status" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
-          </el-select>
-        </el-form-item>
-        <!-- <el-form-item label="审核人" prop="reviewBy">
-          <el-input v-model="form.reviewBy" placeholder="请输入审核人" />
-        </el-form-item>
-        <el-form-item label="审核时间" prop="reviewTime">
-          <el-date-picker clearable
-            v-model="form.reviewTime"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择审核时间">
-          </el-date-picker>
-        </el-form-item> -->
-        <!-- <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
-        </el-form-item> -->
-        <el-form-item label="地点" prop="place">
-          <el-input v-model="form.place" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-        <el-form-item label="时间" prop="findTime">
-          <el-date-picker clearable
-            v-model="form.findTime"
-            type="datetime"
-            value-format="yyyy-MM-dd HH:mm:ss"
-            placeholder="请选择时间">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="电话" prop="phone">
-          <el-input v-model="form.phone" placeholder="请输入电话" />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listLostfound, getLostfound, delLostfound, addLostfound, updateLostfound, verifyLostfound } from "@/api/lostfound/lostfound";
-
-export default {
-  name: "Lostfound",
-  dicts: ['review_status', 'claim_status', 'lookfor_status'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 失物寻物表格数据
-      lostfoundList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        header: null,
-        photo: null,
-        description: null,
-        type: null,
-        origin: null,
-        status: null,
-        lostFoundStatus: null,
-        reviewBy: null,
-        reviewTime: null,
-        place: null,
-        findTime: null,
-        phone: null
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-      },
-      type: ''
-    };
-  },
-  created() {
-    const { type } = this.$route.query;
-    this.type = type;
-    this.queryParams.type = type;
-    this.getList();
-  },
-  methods: {
-    // 失物招领审核
-    handleVerify(row){
-      const _this = this;
-      if (row.verify == '0') {
-        this.$modal.confirm('是否确认审核"' + row.header + '"数据项?').then(function() {
-          return verifyLostfound({ type: _this.type, id: row.id, status: '1' });
-        }).then(() => {
-          this.getList();
-          this.$modal.msgSuccess("审核成功");
-        }).catch(() => {});
-      } else {
-        this.$modal.prompt('请输入驳回原因').then(({ value }) => {
-          return verifyLostfound({ type: _this.type, id: row.id, status: '2', remark: value });
-        }).then(() => {
-          this.getList();
-          this.$modal.msgSuccess("驳回成功");
-        }).catch(() => {});
-      }
-    },
-    /** 查询失物寻物列表 */
-    getList() {
-      this.loading = true;
-      listLostfound(this.queryParams).then(response => {
-        this.lostfoundList = response.rows.map(e => {
-          const dict = this.dict.type.review_status.find(j => j.value == e.status);
-          e.statusText = dict.label;
-          const lostFoundStatuDict = this.type == 'swzl' ? this.dict.type.claim_status.find(j => j.value == e.lostFoundStatus) : this.dict.type.lookfor_status.find(j => j.value == e.lostFoundStatus);
-          e.lostFoundStatusText = lostFoundStatuDict.label;
-          return e;
-        });
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        header: null,
-        photo: null,
-        description: null,
-        type: null,
-        origin: null,
-        status: null,
-        lostFoundStatus: null,
-        createBy: null,
-        createTime: null,
-        updateBy: null,
-        updateTime: null,
-        reviewBy: null,
-        reviewTime: null,
-        remark: null,
-        place: null,
-        findTime: null,
-        phone: null
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = this.type == 'swzl' ? '添加失物招领' : "添加寻物启事";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      getLostfound({ type: this.type, id: row.id}).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = this.type == 'swzl' ? '修改失物招领' : "修改寻物启事";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          this.form.type = this.type;
-          if (this.form.id != null) {
-            updateLostfound(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addLostfound(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const _this = this;
-      this.$modal.confirm('是否确认删除"' + row.header + '"数据项?').then(function() {
-        return delLostfound({type: _this.type, id: row.id});
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    }
-  }
-};
-</script>

+ 0 - 212
src/views/questionnaire/addFrame.vue

@@ -1,212 +0,0 @@
-<template>
-    <div class="app-container">
-      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-        <el-form-item label="标题" prop="title">
-          <el-input v-model="queryParams.title" placeholder="请输入标题" clearable @keyup.enter.native="handleQuery"/>
-        </el-form-item>
-        <el-form-item>
-          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-        </el-form-item>
-      </el-form>
-  
-      <el-row :gutter="10" class="mb8">
-        <el-col :span="1.5">
-          <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
-        </el-col>
-      </el-row>
-  
-      <el-table v-loading="loading" :data="infoList" row-key="catalogId" border default-expand-all :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
-        <el-table-column label="标题" align="center" prop="title" />
-        <el-table-column label="类型" align="center" prop="typeText" />
-        <el-table-column label="排序" align="center" prop="orderNum" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-          <template slot-scope="scope">
-            <el-button  size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
-            <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
-  
-      <!-- 添加或修改事件上报管理对话框 -->
-      <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
-        <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-          <el-form-item label="类型" prop="status">
-            <el-select v-model="form.type" placeholder="请选择类型" @change="typeChange">
-              <el-option v-for="dict in dict.type.questionnaire_type" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="标题" prop="title">
-            <el-input v-model="form.title" />
-          </el-form-item>
-          <el-form-item label="题号" prop="orderNum">
-            <el-input v-model="form.orderNum" />
-          </el-form-item>
-          <div v-if="form.type == 1 || form.type == 0">
-            <el-form-item :label="'选项' + String.fromCharCode(64 + index + 1)" prop="title" v-for="(item, index) in form.options" :key="index" class="item">
-              <el-input v-model="item.text" class="optionInput"></el-input>
-              <el-switch class="switch" v-model="item.type" active-text="输入" inactive-text="勾选" :active-value="true" :inactive-value="false"></el-switch>
-              <el-button class="optionBtn" type="danger" size="mini" v-if="form.options.length !== index + 1" @click="rmOption(index)">删除</el-button>
-              <el-button class="optionBtn" type="primary" size="mini" v-if="form.options.length == index + 1" @click="addOption">添加</el-button>
-            </el-form-item>
-          </div>
-        </el-form>
-        <div slot="footer" class="dialog-footer">
-          <el-button type="primary" @click="submitForm">确 定</el-button>
-          <el-button @click="cancel">取 消</el-button>
-        </div>
-      </el-dialog>
-    </div>
-  </template>
-  
-  <script>
-  import { getQuestion, addQuestion, updateQuestion, delQuestion, getQuestionFach } from "@/api/questionnaire/index";
-  
-  export default {
-    name: "Info",
-    dicts: ['questionnaire_type'],
-    data() {
-      return {
-        // 遮罩层
-        loading: true,
-        // 显示搜索条件
-        showSearch: true,
-        // 总条数
-        total: 0,
-        // 事件上报管理表格数据
-        infoList: [],
-        // 弹出层标题
-        title: "",
-        // 是否显示弹出层
-        open: false,
-        // 查询参数
-        queryParams: {
-          pageNum: 1,
-          pageSize: 10
-        },
-        // 表单参数
-        form: {},
-        // 表单校验
-        rules: {
-        },
-        surveyId: ''
-      };
-    },
-    async created() {
-      this.surveyId = this.$route.query.surveyId;
-      this.getList();
-    },
-    methods: {
-      /** 查询列表 */
-      getList() {
-        this.loading = true;
-        getQuestion({ ...this.queryParams, surveyId: this.surveyId }).then(response => {
-          this.infoList = response.rows.map(e => {
-            const dict = this.dict.type.questionnaire_type.find(j => j.value == e.type);
-            e.typeText = dict?.label;
-            e.options = e.options.map(k => ({ ...k, type: k.type == 'true' }))
-            return e;
-          });
-          this.total = response.total;
-          this.loading = false;
-        });
-      },
-      // 取消按钮
-      cancel() {
-        this.open = false;
-        this.reset();
-      },
-      // 表单重置
-      reset() {
-        this.form = {};
-        this.resetForm("form");
-      },
-      /** 搜索按钮操作 */
-      handleQuery() {
-        this.queryParams.pageNum = 1;
-        this.getList();
-      },
-      /** 重置按钮操作 */
-      resetQuery() {
-        this.resetForm("queryForm");
-        this.handleQuery();
-      },
-      /** 新增按钮操作 */
-      handleAdd() {
-        this.form = { options: [{}] }
-        this.open = true;
-        this.title = "添加问题";
-      },
-      /** 修改按钮操作 */
-      handleUpdate(row) {
-        this.reset();
-         this.form = { ...row };
-          this.open = true;
-          this.title = "修改问题";
-      },
-      /** 提交按钮 */
-      submitForm() {
-        this.$refs["form"].validate(valid => {
-          if (valid) {
-            if (this.form.questionId != null) {
-              updateQuestion(this.form).then(response => {
-                this.$modal.msgSuccess("修改成功");
-                this.open = false;
-                this.getList();
-              });
-            } else {
-              this.form.surveyId = this.surveyId;
-              addQuestion(this.form).then(response => {
-                this.$modal.msgSuccess("新增成功");
-                this.open = false;
-                this.getList();
-              });
-            }
-          }
-        });
-      },
-      /** 删除按钮操作 */
-      handleDelete(row) {
-        const questionId = row.questionId;
-        this.$modal.confirm('是否确认删除标题为"' + row.title + '"的数据项?').then(function() {
-          return delQuestion([questionId]);
-        }).then(() => {
-          this.getList();
-          this.$modal.msgSuccess("删除成功");
-        }).catch(() => {});
-      },
-      addOption() {
-        this.form.options.push({})
-      },
-      rmOption(index) {
-        this.form.options.splice(index, 1)
-      },
-      // 类型改变
-      typeChange(e) {
-        if (e == 2) {
-          this.form.options = [];
-          return
-        };
-        this.form.options = [{}];
-      }
-    }
-  };
-  </script>
-  <style lang="scss" scoped>
-  .item {
-    .el-form-item__content {
-      display: flex;
-      .optionInput {
-        width: 50%;
-      }
-      .switch {
-        width: 20%;
-        margin: 0 5%;
-      }
-      .optionBtn {
-        width: 10%;
-      }
-    }
-  }
-  </style>

+ 0 - 258
src/views/questionnaire/addFrame2.vue

@@ -1,258 +0,0 @@
-<template>
-  <div class="main">
-    <el-container>
-      <el-aside>
-        <h3>类型列表</h3>
-        <draggable class=" list-group" :list="list1" :group="{ name: 'people', pull: 'clone', put: false }" :clone="cloneData" @end="enditem">
-          <div class="list-group-item" v-for="(item, index) in list1" :key="index">{{ item.name }}</div>
-        </draggable>
-        <!-- <draggable class="rm" :list="list3" group="people" @change="rmlog" v-if="rm">
-          <i class="el-icon-delete emIcon"></i>
-        </draggable> -->
-      </el-aside>
-      <el-main>
-        <el-header>
-          <h3>表单视图</h3>
-          <el-button size="mini" type="success" @click="save">保存</el-button>
-          <el-button size="mini" type="primary" @click="reset">重置</el-button>
-        </el-header>
-        <!-- @start="rm=true" @end="rm=false" -->
-        <draggable class="dragArea" :list="list2" group="people" @update="listSort">
-            <div v-for="(element, index) in list2" :key="index">
-              <div class="singleBox" v-if="element.type == 1 && form[index]">
-                <div class="titleBox">
-                  <div class="title">问题{{ index + 1 }}:</div>
-                  <el-input v-model="form[index].title" class="titleInput"></el-input>
-                </div>
-                <div class="optionBox" v-for="(item, idx)  in form[index].options" :key="idx">
-                  <div class="title">
-                    <el-radio disabled></el-radio>
-                    {{ String.fromCharCode(64 + idx + 1) }}:
-                  </div>
-                  <el-switch @change="switchChange(index, idx, $event)" v-if="item.custom || item.custom === false" v-model="item.custom" active-text="输入" inactive-text="勾选" :active-value="true" :inactive-value="false"></el-switch>
-                  <el-input v-model="item[`text`]" class="optionInput" :class="{ 'optionItem': item.custom || item.custom === false }" @input="itemInput(index, idx, $event)"></el-input>
-                  <el-button class="optionBtn" type="danger" size="mini" v-if="form[index].options.length !== idx + 1" @click="rmOption(index, idx)">删除</el-button>
-                  <el-button class="optionBtn" type="primary" size="mini" v-if="form[index].options.length == idx + 1" @click="addOption(index)">添加</el-button>
-                </div>
-                <i class="el-icon-close close" @click="close(element)"></i>
-              </div>
-              <div class="multipleBox" v-if="element.type == 2 && form[index]">
-                <div class="titleBox">
-                  <div class="title">问题{{ index + 1 }}:</div>
-                  <el-input v-model="form[index].title" class="titleInput"></el-input>
-                </div>
-                <div class="optionBox" v-for="(item, idx)  in form[index].options" :key="idx">
-                  <div class="title">
-                    <el-checkbox disabled></el-checkbox>
-                    {{ String.fromCharCode(64 + idx + 1) }}:
-                  </div>
-                  <el-input v-model="item[`text`]" class="optionInput" @input="itemInput(index, idx, $event)"></el-input>
-                  <el-button class="optionBtn" type="danger" size="mini" v-if="form[index].options.length !== idx + 1" @click="rmOption(index, idx)">删除</el-button>
-                  <el-button class="optionBtn" type="primary" size="mini" v-if="form[index].options.length == idx + 1" @click="addOption(index)">添加</el-button>
-                </div>
-                <i class="el-icon-close close" @click="close(element)"></i>
-              </div>
-              <div class="questionBox" v-if="element.type == 3">
-                <div class="titleBox">
-                  <div class="title">问题{{ index + 1 }}:</div>
-                  <el-input v-model="form[index].title" class="titleInput"></el-input>
-                </div>
-                <div class="optionBox">
-                  <div class="title">答案:</div>
-                  <el-input class="optionInput" disabled type="textarea" :autosize="{ minRows: 2, maxRows: 4}" placeholder="请输入内容"></el-input>
-                </div>
-                <i class="el-icon-close close" @click="close(element)"></i>
-              </div>
-            </div>
-        </draggable>
-      </el-main>
-    </el-container>
-  </div>
-</template>
-  
-  <script>
-import draggable from "vuedraggable";
-export default {
-  name: "clone",
-  components: {
-    draggable,
-  },
-  data() {
-    return {
-      form: [],
-      list1: [
-        { name: "单选题", type: 1 },
-        { name: "多选题", type: 2 },
-        { name: "问答题", type: 3 },
-      ],
-      list2: [],
-      list3: [],
-      data: {},
-      qt: false
-    };
-  },
-  methods: {
-    enditem(e) {
-      this.list2.push(this.data);
-      const data = { title: '', ...this.data, options: [{}] }
-      this.form.push(data);
-    },
-    cloneData(e) {
-      const time = (new Date()).getTime();
-      this.data = { ...e, id: time };
-    },
-    listSort(e) {
-      const data = this.sortByObjectProperty(this.form, this.list2, 'type', 'type');
-      this.form = data;
-    },
-    // 排序函数
-    sortByObjectProperty(arrayToSort, referenceArray, property, property2) {
-      // 创建一个映射对象,用于存储参考数组中对象的属性值和它们的索引
-      const indexMap = new Map();
-      referenceArray.forEach((obj, index) => {
-        indexMap.set(obj[property], index);
-      });
-
-      // 根据映射对象中的索引对待排序数组的对象进行排序
-      arrayToSort.sort((a, b) => {
-        return indexMap.get(a[property2]) - indexMap.get(b[property2]);
-      });
-
-      return arrayToSort;
-    },
-    // 删除选项
-    rmOption(index, idx) {
-      this.form[index].options.splice(idx, 1)
-    },
-    //添加选项
-    addOption(index) {
-      this.form[index].options.push({})
-    },
-    // 保存
-    save() {
-      console.log(this.form);
-    },
-    // 重置
-    reset() {
-      this.form = [];
-      this.list2 = [];
-    },
-    // 删除函数
-    close(e) {
-      this.form = this.form.filter(j => j.id !== e.id)
-      this.list2 = this.list2.filter(j => j.id !== e.id)
-    },
-    // 选项输入改变
-    itemInput(index, idx, e) {
-      if (e == '其他') this.form[index].options[idx].custom = true;
-      if (e !== '其他') delete this.form[index].options[idx].custom
-    },
-    switchChange(index, idx, e) {
-      console.log(index, idx, e);
-      // this.form[index].options[idx].custom = e;
-      this.$set(this.form[index].options, idx, { ...this.form[index].options[idx], custom: e })
-    }
-  }
-};
-</script>
-<style lang="scss" scoped>
-.main {
-  height: 91vh;
-}
-.el-container {
-  height: 100%;
-}
-.el-main {
-  height: 100%;
-  padding: 0;
-}
-.el-aside {
-  height: 100%;
-  padding: 0;
-  margin: 0;
-  position: relative;
-}
-.singleBox, .multipleBox, .questionBox {
-  width: 50%;
-  margin: 0 auto;
-  margin-top: 30px;
-  border: 1px dashed #999;
-  padding: 20px 50px;
-  border-radius: 12px;
-  position: relative;
-  .close {
-    position: absolute;
-    top: -10px;
-    right: -10px;
-    font-size: 20px;
-    background: red;
-    color: #fff;
-    border-radius: 50%;
-  }
-}
-.titleBox {
-  width: 100%;
-  display: flex;
-  .title {
-    width: 15%;
-    line-height: 2em;
-  }
-  .titleInput {
-    width: 70%;
-  }
-}
-.optionBox {
-  width: 100%;
-  margin-top: 10px;
-  display: flex;
-  .title {
-    width: 15%;
-    line-height: 2em;
-  }
-  .optionInput {
-    width: 70%;
-  }
-  .optionBtn {
-    width: 10%;
-    margin-left: 5%;
-    display: block;
-  }
-}
-.dragArea {
-  overflow-y: auto;
-  height: 90%;
-  padding-bottom: 10%;
-}
-.el-header {
-  display: flex;
-  .el-button {
-    padding: 5px 15px;
-    height: 2.5em;
-    margin: 15px 0 0 10px;
-  }
-}
-.optionItem {
-  width: 40% !important;
-}
-.el-switch {
-  width: 30%;
-  margin-top: 0.5em;
-}
-// .rm {
-//   width: 100%;
-//   height: 15vh;
-//   position: absolute;
-//   bottom: 0;
-//   background: red;
-//   left: 0;
-//   .emIcon {
-//     width: 100%;
-//     line-height: 15vh;
-//     color: #fff;
-//     font-size: 50px;
-//     display: block;
-//     text-align: center;
-//   }
-// }
-
-</style>

+ 0 - 208
src/views/questionnaire/index.vue

@@ -1,208 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="标题" prop="title">
-        <el-input v-model="queryParams.title" placeholder="请输入标题" clearable @keyup.enter.native="handleQuery"/>
-      </el-form-item>
-      <el-form-item label="状态" prop="status">
-          <el-select v-model="queryParams.status" placeholder="请选择状态">
-            <el-option v-for="dict in dict.type.questionnaire_status" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
-          </el-select>
-        </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
-      </el-col>
-    </el-row>
-
-    <el-table v-loading="loading" :data="infoList" row-key="catalogId" border default-expand-all :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
-      <el-table-column label="标题" align="center" prop="title" />
-      <el-table-column label="状态" align="center" prop="statusText" />
-      <el-table-column label="开始时间" align="center" prop="beginTime" />
-      <el-table-column label="结束时间" align="center" prop="endTime" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button  size="mini" type="text" icon="el-icon-tickets" v-if="scope.row.status == '0'" @click="handleTickes(scope.row)">编辑</el-button>
-          <!-- <el-button  size="mini" type="text" icon="el-icon-s-platform" v-if="scope.row.status !== '2'" @click="handlePreview(scope.row)">预览</el-button> -->
-          <el-button  size="mini" type="text" icon="el-icon-check" v-if="scope.row.status == '0'" @click="handleUpdateStatus(scope.row, '1')">发布</el-button>
-          <el-button  size="mini" type="text" icon="el-icon-close" v-if="scope.row.status == '1'" @click="handleUpdateStatus(scope.row, '2')">结束</el-button>
-          <el-button  size="mini" type="text" icon="el-icon-tickets" v-if="scope.row.status !== '0'" @click="handleNotes(scope.row)">记录</el-button>
-          <el-button  size="mini" type="text" icon="el-icon-edit"  v-if="scope.row.status == '0'" @click="handleUpdate(scope.row)">修改</el-button>
-          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
-
-    <!-- 添加或修改事件上报管理对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="标题" prop="title">
-          <el-input v-model="form.title" />
-        </el-form-item>
-        <el-form-item v-if="form.surveyId" label="状态" prop="status">
-          <el-select v-model="form.status" placeholder="请选择状态">
-            <el-option v-for="dict in dict.type.questionnaire_status" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item label="描述" prop="description">
-          <el-input autosize v-model="form.description" type="textarea" :rows="2" />
-        </el-form-item>
-        <el-form-item label="开始结束时间" prop="time">
-          <el-date-picker v-model="form.time" value-format="yyyy-MM-dd HH:mm:ss" type="datetimerange" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间"></el-date-picker>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { getQuestionnaire, addQuestionnaire, updateQuestionnaire, delQuestionnaire, setQuestionnaireStatus } from "@/api/questionnaire/index";
-
-export default {
-  name: "Info",
-  dicts: ['questionnaire_status'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 事件上报管理表格数据
-      infoList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-      },
-    };
-  },
-  async created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询列表 */
-    getList() {
-      this.loading = true;
-      getQuestionnaire(this.queryParams).then(response => {
-        this.infoList = response.rows.map(e => {
-          const dict = this.dict.type.questionnaire_status.find(j => j.value == e.status);
-          e.statusText = dict?.label;
-          return e;
-        });
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {};
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加问卷";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const time = [row.beginTime, row.endTime];
-      this.form = { ...row, time };
-      this.open = true;
-      this.title = "修改问卷";
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          this.form.beginTime = this.form.time[0]
-          this.form.endTime = this.form.time[1];
-          if (this.form.surveyId) {
-            updateQuestionnaire(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addQuestionnaire(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const surveyId = row.surveyId;
-      this.$modal.confirm('是否确认删除标题为"' + row.title + '"的数据项?').then(function() {
-        return delQuestionnaire([surveyId]);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    // 编辑按钮
-    handleTickes(e) {
-      this.$router.push(`/questionnaire/addFrame?surveyId=${e.surveyId}`)
-    },
-    // 查看记录
-    handleNotes(e) {
-      this.$router.push(`/questionnaire/notes?surveyId=${e.surveyId}`)
-    },
-    // 预览
-    handlePreview(e) {
-      console.log(e);
-    },
-    // 修改状态
-    handleUpdateStatus(row, status) {
-      const id = row.surveyId;
-      this.$modal.confirm('是否确认修改标题为"' + row.title + '"的状态?').then(function() {
-        return setQuestionnaireStatus({ id, status });
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("修改成功");
-      }).catch(() => {});
-    }
-  }
-};
-</script>

+ 0 - 111
src/views/questionnaire/notes.vue

@@ -1,111 +0,0 @@
-<template>
-    <div class="app-container">
-      <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="68px">
-        <el-form-item label="姓名" prop="name">
-          <el-input v-model="queryParams.name" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery"/>
-        </el-form-item>
-        <el-form-item>
-          <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-          <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-        </el-form-item>
-      </el-form>
-      <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-        >导出问卷结果</el-button>
-      </el-col>
-    </el-row>
-  
-      <el-table v-loading="loading" :data="infoList" row-key="catalogId" border default-expand-all :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
-        <el-table-column label="姓名" align="center" prop="name" />
-        <el-table-column label="手机号" align="center" prop="phone" />
-        <el-table-column label="时间" align="center" prop="createTime" />
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-          <template slot-scope="scope">
-            <el-button  size="mini" type="text" icon="el-icon-tickets" @click="handleDetailed(scope.row)">详情</el-button>
-            <el-button  size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)">删除</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
-      <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
-    </div>
-  </template>
-  
-  <script>
-  import { getRecord, delRecord } from "@/api/questionnaire/index";
-  
-  export default {
-    name: "Info",
-    dicts: ['questionnaire_status'],
-    data() {
-      return {
-        // 总条数
-        total: 0,
-        // 事件上报管理表格数据
-        infoList: [],
-        // 弹出层标题
-        title: "",
-        // 查询参数
-        queryParams: {
-          pageNum: 1,
-          pageSize: 10
-        }
-      };
-    },
-    async created() {
-      this.surveyId = this.$route.query.surveyId;
-      this.getList();
-    },
-    methods: {
-      /** 查询列表 */
-      getList() {
-        this.loading = true;
-        getRecord({ ...this.queryParams, surveyId: this.surveyId  }).then(response => {
-          this.infoList = response.rows.map(e => ({ ...e, ...e.user }));
-          this.total = response.total;
-          this.loading = false;
-        });
-      },
-      // 表单重置
-      reset() {
-        this.form = {};
-        this.resetForm("form");
-      },
-      /** 搜索按钮操作 */
-      handleQuery() {
-        this.queryParams.pageNum = 1;
-        this.getList();
-      },
-      /** 重置按钮操作 */
-      resetQuery() {
-        this.resetForm("queryForm");
-        this.handleQuery();
-      },
-      // 详情按钮
-      handleDetailed(e) {
-        this.$router.push(`/questionnaire/paper?surveyId=${e.surveyId}&userId=${e.userId}`)
-      },
-      /** 导出按钮操作 */
-      handleExport () {
-        this.download(`/survey/record/export?surveyId=${this.surveyId}`, {
-          ...this.queryParams
-        }, `问卷结果_${new Date().getTime()}.xlsx`)
-      },
-      /** 删除按钮操作 */
-      handleDelete (row) {
-        const recordId = row.recordId;
-        this.$modal.confirm('是否确认删除微信用户"' + row.user.name + '"的问卷记录?').then(function () {
-          return delRecord(recordId);
-        }).then(() => {
-          this.getList();
-          this.$modal.msgSuccess("删除成功");
-        }).catch(() => { });
-      },
-    }
-  };
-  </script>

+ 0 - 88
src/views/questionnaire/paper.vue

@@ -1,88 +0,0 @@
-<template>
-  <div class="app-container">
-    <div class="box" v-for="(item, index) in dataList" :key="index">
-      <div class="title">{{ item.title }}</div>
-      <div class="options" v-for="(i, idx) in item.options" :key="idx">
-        <el-checkbox disabled v-if="item.type == '1'" :label="i.text" v-model="i.checked"></el-checkbox>
-        <el-radio-group v-model="i.checked" v-if="item.type == '0'">
-          <el-radio disabled  :label="i.text">{{ i.text }}</el-radio>
-        </el-radio-group>
-        
-        <el-input disabled type="textarea" v-if="i.checkedText" :autosize="{ minRows: 2, maxRows: 4}" :value="i.checkedText"></el-input>
-      </div>
-      <el-input disabled type="textarea" v-if="item.type == '2'" :autosize="{ minRows: 2, maxRows: 4}" :value="item.optionText"></el-input>
-    </div>
-  </div>
-</template>
-  
-<script>
-  import { getDetail, getResult } from "@/api/questionnaire/index";
-  export default {
-    name: "Info",
-    dicts: ['questionnaire_status'],
-    data() {
-      return {
-        surveyId: '',
-        userId: '',
-        dataList: []
-      };
-    },
-    async created() {
-      this.surveyId = this.$route.query.surveyId;
-      this.userId = this.$route.query.userId;
-      const list = await getDetail(this.surveyId);
-      const result = await getResult({ surveyId: this.surveyId, userId: this.userId })
-      // 遍历返回体
-      list.data.questions.forEach((e, index, arr) => {
-        // 如果是0||1为选择题
-        if (e.type == '1' || e.type == '0') {
-          // 遍历选项
-          e.options.forEach((j, idx, arr) => {
-            // 下边转换为字母
-            const str = String.fromCharCode(64 + idx + 1);
-            // 查询已选的里面是否包含当前字母
-            const dintdata = result.data[index].find(p => p.includes(str));
-            // 如果包含
-            if (dintdata && e.type == '1') list.data.questions[index].options[idx].checked = true;
-            if (dintdata && e.type == '0') list.data.questions[index].options[idx].checked = list.data.questions[index].options[idx].text;
-            
-            // 获取当前选中字母是否包含 “:”
-            const find_index = result.data[index].findIndex(p => p.includes(`${str}:`))
-            // 如果包含冒号
-            if (find_index !== -1){
-              // 截取带冒号的字符串
-              const arr = result.data[index][find_index].split(':');
-              // 设置其他文本
-              list.data.questions[index].options[idx].checkedText = arr[1];
-            }
-            
-          })
-        }
-        // 2为问答题
-        if (e.type == '2') {
-          list.data.questions[index].optionText = result.data[index][0];
-        }
-        
-      });
-      this.dataList = list.data.questions;
-    },
-    methods: {}
-  };
-</script>
-<style lang="scss" scoped>
-.app-container {
-  width: 100%;
-  height: 100%;
-  overflow-y: auto;
-}
-.box {
-  width: 50%;
-  margin: 20px auto;
-}
-.title {
-  margin-bottom: 10px;
-}
-.options {
-  margin-top: 5px;
-}
-</style>

+ 0 - 315
src/views/register/user/index.vue

@@ -1,315 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="用户姓名" prop="name">
-        <el-input
-          v-model="queryParams.name"
-          placeholder="请输入用户姓名"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="手机号码" prop="phone">
-        <el-input
-          v-model="queryParams.phone"
-          placeholder="请输入手机号码"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <!-- <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['system:user:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['system:user:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['system:user:remove']"
-        >删除</el-button>
-      </el-col> -->
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-        >导出</el-button>
-      </el-col>
-      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="用户姓名" align="center" prop="name" />
-      <el-table-column label="用户照片" align="center" prop="photo" width="100">
-        <template slot-scope="scope">
-          <image-preview :src="scope.row.photo" :width="50" :height="50"/>
-        </template>
-      </el-table-column>
-      <el-table-column label="手机号码" align="center" prop="phone" />
-      <el-table-column label="所属网格" align="center" prop="addressIdtext" />
-      <el-table-column label="网格员" align="center" prop="gridmanIdtext" />
-      <el-table-column label="小区" align="center" prop="estateId" />
-      <el-table-column label="楼栋号、单元号、门牌号" align="center" prop="addrDetail" />
-      <el-table-column label="创建时间" align="center" prop="createTime" />
-      <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['system:user:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['system:user:remove']"
-          >删除</el-button>
-        </template>
-      </el-table-column> -->
-    </el-table>
-    
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改微信用户管理对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="用户姓名" prop="name">
-          <el-input v-model="form.name" placeholder="请输入用户姓名" />
-        </el-form-item>
-        <el-form-item label="用户照片">
-          <image-upload v-model="form.photo"/>
-        </el-form-item>
-        <el-form-item label="手机号码" prop="phone">
-          <el-input v-model="form.phone" placeholder="请输入手机号码" />
-        </el-form-item>
-        <el-form-item label="出生日期" prop="birthday">
-          <el-date-picker clearable
-            v-model="form.birthday"
-            type="date"
-            value-format="yyyy-MM-dd"
-            placeholder="请选择出生日期">
-          </el-date-picker>
-        </el-form-item>
-        <el-form-item label="微信openid" prop="openid">
-          <el-input v-model="form.openid" placeholder="请输入微信openid" />
-        </el-form-item>
-        <el-form-item label="所属网格" prop="addressId">
-          <el-input v-model="form.addressId" placeholder="请输入所属网格ID" />
-        </el-form-item>
-        <el-form-item label="网格员" prop="gridmanId">
-          <el-input v-model="form.gridmanId" placeholder="请输入网格员ID" />
-        </el-form-item>
-        <el-form-item label="小区" prop="estateId">
-          <el-input v-model="form.estateId" placeholder="请输入小区ID" />
-        </el-form-item>
-        <el-form-item label="详细地址:楼栋号、单元号、门牌号" prop="addrDetail">
-          <el-input v-model="form.addrDetail" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listUser, getUser, delUser, addUser, updateUser } from "@/api/register/user";
-
-export default {
-  name: "User",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 微信用户管理表格数据
-      userList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 详细地址:楼栋号、单元号、门牌号时间范围
-      daterangeBirthday: [],
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        name: null,
-        photo: null,
-        phone: null,
-        birthday: null,
-        openid: null,
-        addressId: null,
-        gridmanId: null,
-        estateId: null,
-        addrDetail: null
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询微信用户管理列表 */
-    getList() {
-      this.loading = true;
-      this.queryParams.params = {};
-      if (null != this.daterangeBirthday && '' != this.daterangeBirthday) {
-        this.queryParams.params["beginBirthday"] = this.daterangeBirthday[0];
-        this.queryParams.params["endBirthday"] = this.daterangeBirthday[1];
-      }
-      listUser(this.queryParams).then(response => {
-        this.userList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        userId: null,
-        name: null,
-        photo: null,
-        phone: null,
-        birthday: null,
-        openid: null,
-        addressId: null,
-        gridmanId: null,
-        estateId: null,
-        addrDetail: null
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.daterangeBirthday = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.userId)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加微信用户管理";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const userId = row.userId || this.ids
-      getUser(userId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改微信用户管理";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.userId != null) {
-            updateUser(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addUser(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const userIds = row.userId;
-      this.$modal.confirm('是否确认删除微信用户管理编号为"' + row.name + '"的数据项?').then(function() {
-        return delUser(userIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('/register/user/export', {
-        ...this.queryParams
-      }, `user_${new Date().getTime()}.xlsx`)
-    }
-  }
-};
-</script>

+ 0 - 276
src/views/report/index.vue

@@ -1,276 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="姓名" prop="name">
-        <el-input
-          v-model="queryParams.name"
-          placeholder="请输入姓名"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="电话" prop="phone">
-        <el-input
-          v-model="queryParams.phone"
-          placeholder="请输入电话"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <!-- <el-col :span="1.5">
-        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['report:info:add']">新增</el-button>
-      </el-col> -->
-      <!-- <el-col :span="1.5">
-        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['report:info:edit']">修改</el-button>
-      </el-col> -->
-      <el-col :span="1.5">
-        <el-button  type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['report:info:remove']">删除</el-button>
-      </el-col>
-      <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
-    </el-row>
-
-    <el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="标题" align="center" prop="title" />
-      <el-table-column label="姓名" align="center" prop="name" />
-      <el-table-column label="电话" align="center" prop="phone" />
-      <el-table-column label="上报类型" align="center" prop="typeText" />
-      <el-table-column label="状态" align="center" prop="statusText" />
-      <el-table-column label="上报时间" align="center" prop="createTime" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <!-- <el-button  size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['report:info:edit']">修改</el-button> -->
-          <el-button  size="mini" type="text" icon="el-icon-tickets" @click="handleDetailed(scope.row)" v-hasPermi="['report:info:detailed']">详情</el-button>
-          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['report:info:remove']">删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
-
-    <!-- 添加或修改事件上报管理对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="标题" prop="title">
-          <el-input v-model="form.title" disabled />
-        </el-form-item>
-        <el-form-item label="姓名" prop="name">
-          <el-input v-model="form.name" disabled />
-        </el-form-item>
-        <el-form-item label="电话" prop="phone">
-          <el-input v-model="form.phone" disabled />
-        </el-form-item>
-        <el-form-item label="上报类型" prop="typeText">
-          <el-input v-model="form.typeText" disabled />
-        </el-form-item>
-        <el-form-item label="事件描述" prop="description">
-          <el-input v-model="form.description" disabled type="textarea" />
-        </el-form-item>
-        <el-form-item label="详细地址" prop="addressDesc">
-          <el-input v-model="form.addressDesc" disabled />
-        </el-form-item>
-        <el-form-item label="办理意见" prop="addressDesc">
-          <el-input v-model="form.handleComment" disabled />
-        </el-form-item>
-        <el-form-item label="图片" prop="addressDesc">
-          <!-- <img class="itemImg" :src="item.url" v-for="(item, index) in imgList" :key="index"> -->
-          <el-image style="width: 100px; height: 100px; margin: 0 10px;" :src="item.url" :fit="'fit'" v-for="(item, index) in imgList" :key="index"></el-image>
-        </el-form-item>
-        <el-form-item label="视频" prop="addressDesc">
-          <video controls style="width: 100px; height: 100px; margin: 0 10px;" :src="item.url"  v-for="(item, index) in videoList" :key="index"></video>
-        </el-form-item>
-        <el-form-item label="文档" prop="addressDesc">
-          <a v-for="(item, index) in documentList" :key="index" :href="item.url">{{ item.fileName }}</a>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listInfo, getInfo, delInfo, addInfo, updateInfo, typeList } from "@/api/report/info";
-
-export default {
-  name: "Info",
-  dicts: ['report_status'],
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 事件上报管理表格数据
-      infoList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        userId: null,
-        name: null,
-        phone: null,
-        type: null,
-        description: null,
-        status: null
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-      },
-      imgList: [],
-      videoList: [],
-      documentList: [],
-      typeList: []
-    };
-  },
-  async created() {
-    const res = await typeList()
-    if (res) {
-      this.typeList = res.data;
-      this.getList();
-    }
-  },
-  methods: {
-    /** 查询事件上报管理列表 */
-    getList() {
-      this.loading = true;
-      listInfo(this.queryParams).then(response => {
-        this.infoList = response.rows.map(e => {
-          const is_type = this.typeList.find(j => j.typeCode == e.type)
-          e.typeText = is_type?.typeName;
-          const dict = this.dict.type.report_status.find(j => j.value == e.status)
-          if (dict) e.statusText = dict.label
-          return e;
-        });
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        reportId: null,
-        userId: null,
-        name: null,
-        phone: null,
-        type: null,
-        description: null,
-        createTime: null,
-        status: "0"
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.reportId)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加事件上报管理";
-    },
-    // 详情按钮
-    handleDetailed(row){
-      this.reset();
-      const reportId = row.reportId || this.ids
-      getInfo(reportId).then(response => {
-        this.form = response.data;
-        const is_type = this.typeList.find(j => j.typeCode == response.data.type)
-        this.form.typeText = is_type?.typeName;
-        this.imgList = response.data.resource?.img;
-        this.videoList = response.data.resource?.video;
-        this.documentList = response.data.resource?.document;
-        this.open = true;
-        this.title = "事件上报详情";
-        this.getList();
-      });
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const reportId = row.reportId || this.ids
-      getInfo(reportId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改事件上报管理";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.reportId != null) {
-            updateInfo(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addInfo(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const reportIds = row.reportId || this.ids;
-      this.$modal.confirm('是否确认删除事件上报管理标题为"' + row.title + '"的数据项?').then(function() {
-        return delInfo(reportIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('report/info/export', {
-        ...this.queryParams
-      }, `info_${new Date().getTime()}.xlsx`)
-    }
-  }
-};
-</script>

+ 0 - 265
src/views/seat/address/index.vue

@@ -1,265 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-row :gutter="10">
-      <el-col :span="4" class="tree">
-          <el-input size="mini" placeholder="输入关键字进行过滤" v-model="filterText">
-            <el-button slot="append" icon="el-icon-refresh" size="mini" @click="refresh"></el-button>
-          </el-input>
-        <el-tree :load="loadNode" lazy accordion class="filter-tree" :data="treeData" :props="defaultProps" :filter-node-method="filterNode" ref="tree" @node-click="nodeClick"></el-tree>
-      </el-col>
-      <el-col :span="20" class="table">
-        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-          <el-form-item label="地址名称" prop="name">
-            <el-input v-model="queryParams.name" placeholder="请输入地址名称" clearable @keyup.enter.native="handleQuery"/>
-          </el-form-item>
-          <el-form-item label="地址编码" prop="code">
-            <el-input v-model="queryParams.code" placeholder="请输入地址编码" clearable @keyup.enter.native="handleQuery"/>
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-          </el-form-item>
-        </el-form>
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <div>当前选择:{{ is_node.name || '根目录' }}</div>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="primary" plain icon="el-icon-plus" size="mini"  @click="handleAdd" v-hasPermi="['address:address:add']">新增</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['address:address:edit']">修改</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['address:address:remove']">删除</el-button>
-          </el-col>
-        </el-row>
-        <el-table v-loading="loading" :data="addressList" @selection-change="handleSelectionChange">
-          <el-table-column type="selection" width="55" align="center" />
-          <el-table-column label="地址名称" align="center" prop="name" />
-          <el-table-column label="地址编码" align="center" prop="code" />
-          <el-table-column label="地址层级" align="center" prop="level" />
-          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-            <template slot-scope="scope">
-              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['address:address:edit']">修改</el-button>
-              <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['address:address:remove']">删除</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-        <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
-      </el-col>
-    </el-row>
-    <!-- 添加或修改地址管理对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="地址名称" prop="name">
-          <el-input v-model="form.name" placeholder="请输入地址名称" />
-        </el-form-item>
-        <el-form-item label="地址编码" prop="code">
-          <el-input v-model="form.code" placeholder="请输入地址编码" />
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listaddress, getaddress, deladdress, addaddress, updateaddress } from "@/api/seat/address";
-
-export default {
-  name: "seataddress",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 地址管理表格数据
-      addressList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        parentId: null,
-        name: null,
-        code: null,
-        level: null
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-      },
-      options: [],
-      filterText: '',
-      // 树
-      treeData: [],
-      defaultProps: {
-        children: 'children',
-        label: 'name',
-        isLeaf: 'leaf'
-      },
-      // 当前节点
-      is_node: {}
-    };
-  },
-  async created() {
-    this.getList();
-    const street = await listaddress({ pageEnable: false, level: 0 });
-    this.treeData = this.$tree([...street.rows]);
-  },
-  methods: {
-    /** 查询地址管理列表 */
-    getList() {
-      this.loading = true;
-      listaddress(this.queryParams).then(response => {
-        this.addressList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        addressId: null,
-        parentId: null,
-        name: null,
-        code: null,
-        level: null
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.addressId)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加地址管理";
-      this.form.parentId = this.is_node.addressId;
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const addressId = row.addressId || this.ids
-      getaddress(addressId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改地址管理";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.addressId != null) {
-            updateaddress(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addaddress(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const addressIds = row.addressId || this.ids;
-      this.$modal.confirm('是否确认删除地址管理编号为"' + row.name + '"的数据项?').then(function() {
-        return deladdress(addressIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('address/address/export', {
-        ...this.queryParams
-      }, `address_${new Date().getTime()}.xlsx`)
-    },
-    // 节点过滤
-    filterNode(value, data) {
-      if (!value) return true;
-      return data.name.indexOf(value) !== -1;
-    },
-    // 节点点击
-    nodeClick(data, node, isnode) {
-      this.is_node = data;
-      this.queryParams.pageNum = 1;
-      this.queryParams.parentId = data.addressId;
-      this.getList();
-    },
-    // 数据懒加载
-    async loadNode(node, resolve) {
-      if (node.data && node.data.addressId) {
-        this.queryParams.pageNum = 1;
-        this.queryParams.parentId = node.data.addressId;
-        this.getList();
-        this.is_node = node.data;
-      }
-      if (node.data?.level == 0) {
-        const community = await listaddress({ pageEnable: false, parentId: node.data.addressId, level: 1 });
-        return resolve(community.rows);
-      }
-      if (node.data?.level == 1) {
-        const address = await listaddress({ pageEnable: false, level: 2, parentId: node.data.addressId });
-        return resolve(address.rows);
-      }
-      if (node.data?.level == 2) return resolve([]);
-    },
-    refresh() {
-      this.queryParams.pageNum = 1;
-      delete this.queryParams.parentId;
-      this.getList();
-      this.is_node = {};
-    }
-  },
-  watch: {
-    filterText(val) {
-      this.$refs.tree.filter(val);
-    }
-  },
-};
-</script>

+ 0 - 251
src/views/seat/estate/index.vue

@@ -1,251 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="小区名称" prop="name">
-        <el-input
-          v-model="queryParams.name"
-          placeholder="请输入小区名称"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['estate:estate:add']"
-        >新增</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['estate:estate:edit']"
-        >修改</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['estate:estate:remove']"
-        >删除</el-button>
-      </el-col>
-      <!-- <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['estate:estate:export']"
-        >导出</el-button>
-      </el-col> -->
-      <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
-    </el-row>
-
-    <el-table v-loading="loading" :data="estateList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="小区ID" align="center" prop="estateId" />
-      <el-table-column label="小区名称" align="center" prop="name" />
-      <!-- <el-table-column label="所属网格ID" align="center" prop="addressId" /> -->
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['estate:estate:edit']"
-          >修改</el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['estate:estate:remove']"
-          >删除</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 添加或修改小区管理对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <el-form-item label="小区名称" prop="name">
-          <el-input v-model="form.name" placeholder="请输入小区名称" />
-        </el-form-item>
-        <!-- <el-form-item label="所属网格ID" prop="addressId">
-          <el-input v-model="form.addressId" placeholder="请输入所属网格ID" />
-        </el-form-item> -->
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listestate, getestate, delestate, addestate, updateestate } from "@/api/seat/estate";
-
-export default {
-  name: "estate",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 小区管理表格数据
-      estateList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        name: null,
-        addressId: null
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-      }
-    };
-  },
-  created() {
-    this.getList();
-  },
-  methods: {
-    /** 查询小区管理列表 */
-    getList() {
-      this.loading = true;
-      listestate(this.queryParams).then(response => {
-        this.estateList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        estateId: null,
-        name: null,
-        addressId: null
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.estateId)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加小区管理";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const estateId = row.estateId || this.ids
-      getestate(estateId).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改小区管理";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.estateId != null) {
-            updateestate(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addestate(this.form).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const estateIds = row.estateId || this.ids;
-      this.$modal.confirm('是否确认删除小区管理编号为"' + row.name + '"的数据项?').then(function() {
-        return delestate(estateIds);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('estate/estate/export', {
-        ...this.queryParams
-      }, `estate_${new Date().getTime()}.xlsx`)
-    }
-  }
-};
-</script>

+ 0 - 273
src/views/seat/gridman/index.vue

@@ -1,273 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-row :gutter="10">
-      <el-col :span="4" class="tree">
-          <el-input size="mini" placeholder="输入关键字进行过滤" v-model="filterText">
-            <el-button slot="append" icon="el-icon-refresh" size="mini" @click="refresh"></el-button>
-          </el-input>
-        <el-tree :load="loadNode" lazy accordion class="filter-tree" :data="treeData" :props="defaultProps" :filter-node-method="filterNode" ref="tree" @node-click="nodeClick"></el-tree>
-      </el-col>
-      <el-col :span="20" class="table">
-        <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="120px">
-          <el-form-item label="网格员姓名" prop="name">
-            <el-input v-model="queryParams.name" placeholder="请输入网格员姓名" clearable @keyup.enter.native="handleQuery" />
-          </el-form-item>
-          <el-form-item label="网格员电话" prop="phone">
-            <el-input v-model="queryParams.phone" placeholder="请输入网格员电话" clearable @keyup.enter.native="handleQuery"/>
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-          </el-form-item>
-        </el-form>
-
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <div>当前网格:{{ is_node.name || '无' }}</div>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['gridman:gridman:add']">新增</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" v-hasPermi="['gridman:gridman:edit']">修改</el-button>
-          </el-col>
-          <el-col :span="1.5">
-            <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" v-hasPermi="['gridman:gridman:remove']">删除</el-button>
-          </el-col>
-          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
-        </el-row>
-
-        <el-table v-loading="loading" :data="gridmanList" @selection-change="handleSelectionChange">
-          <el-table-column type="selection" width="55" align="center" />
-          <!-- <el-table-column label="网格员ID" align="center" prop="id" /> -->
-          <el-table-column label="网格员姓名" align="center" prop="name" />
-          <el-table-column label="网格员电话" align="center" prop="phone" />
-          <!-- <el-table-column label="网格员照片" align="center" prop="photo" /> -->
-          <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-            <template slot-scope="scope">
-              <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" v-hasPermi="['gridman:gridman:edit']">修改</el-button>
-              <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" v-hasPermi="['gridman:gridman:remove']" >删除</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-        <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
-      </el-col>
-    </el-row>
-
-    
-
-    <!-- 添加或修改网格员管理对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
-        <!-- <el-form-item label="所属网格" prop="id">
-          <el-select v-model="form.id" placeholder="请选择所属网格">
-            <el-option v-for="item in options" :key="item.addressId" :label="item.name" :value="item.addressId"></el-option>
-          </el-select>
-        </el-form-item> -->
-        <el-form-item label="网格员姓名" prop="name">
-          <el-input v-model="form.name" placeholder="请输入网格员姓名" />
-        </el-form-item>
-        <el-form-item label="网格员电话" prop="phone">
-          <el-input v-model="form.phone" placeholder="请输入网格员电话" />
-        </el-form-item>
-        <!-- <el-form-item label="网格员照片" prop="photo">
-          <el-input v-model="form.photo" type="textarea" placeholder="请输入内容" />
-        </el-form-item> -->
-      </el-form>
-      <div slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="submitForm">确 定</el-button>
-        <el-button @click="cancel">取 消</el-button>
-      </div>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { listgridman, getgridman, delgridman, addgridman, updategridman } from "@/api/seat/gridman";
-import { listaddress } from "@/api/seat/address";
-
-export default {
-  name: "gridman",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 网格员管理表格数据
-      gridmanList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        name: null,
-        phone: null,
-        photo: null
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-      },
-      options: [],
-      filterText: '',
-      // 树
-      treeData: [],
-      defaultProps: {
-        children: 'children',
-        label: 'name',
-        isLeaf: 'leaf'
-      },
-      // 当前节点
-      is_node: {}
-    };
-  },
-  async created() {
-    this.getList();
-    const street = await listaddress({ pageEnable: false, level: 0 });
-    this.treeData = this.$tree([...street.rows]);
-  },
-  methods: {
-    /** 查询网格员管理列表 */
-    getList() {
-      this.loading = true;
-      listgridman(this.queryParams).then(response => {
-        this.gridmanList = response.rows;
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        id: null,
-        name: null,
-        phone: null,
-        photo: null
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.id)
-      this.single = selection.length!==1
-      this.multiple = !selection.length
-    },
-    /** 新增按钮操作 */
-    handleAdd() {
-      this.reset();
-      this.open = true;
-      this.title = "添加网格员管理";
-    },
-    /** 修改按钮操作 */
-    handleUpdate(row) {
-      this.reset();
-      const id = row.id || this.ids
-      getgridman(id).then(response => {
-        this.form = response.data;
-        this.open = true;
-        this.title = "修改网格员管理";
-      });
-    },
-    /** 提交按钮 */
-    submitForm() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.id != null) {
-            updategridman(this.form).then(response => {
-              this.$modal.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            addgridman({ ...this.form, grid: this.is_node.addressId }).then(response => {
-              this.$modal.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
-      });
-    },
-    /** 删除按钮操作 */
-    handleDelete(row) {
-      const ids = row.id || this.ids;
-      this.$modal.confirm('是否确认删除网格员管理编号为"' + row.name + '"的数据项?').then(function() {
-        return delgridman(ids);
-      }).then(() => {
-        this.getList();
-        this.$modal.msgSuccess("删除成功");
-      }).catch(() => {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('gridman/gridman/export', {
-        ...this.queryParams
-      }, `gridman_${new Date().getTime()}.xlsx`)
-    },
-    // 节点过滤
-    filterNode(value, data) {
-      if (!value) return true;
-      return data.name.indexOf(value) !== -1;
-    },
-    // 节点点击
-    nodeClick(data, node, isnode) {
-      this.is_node = data;
-      this.queryParams.pageNum = 1;
-      this.queryParams.grid = data.addressId;
-      this.getList();
-    },
-    // 数据懒加载
-    async loadNode(node, resolve) {
-      if (node.data?.level == 0) {
-        const community = await listaddress({ pageEnable: false, parentId: node.data.addressId, level: 1 });
-        return resolve(community.rows);
-      }
-      if (node.data?.level == 1) {
-        const address = await listaddress({ pageEnable: false, level: 2, parentId: node.data.addressId });
-        return resolve(address.rows);
-      }
-      if (node.data?.level == 2) {
-        this.queryParams.pageNum = 1;
-        this.queryParams.grid = node.data.addressId;
-        this.getList();
-        this.is_node = node.data;
-        return resolve([]);
-      }
-    },
-    refresh() {
-      this.queryParams.pageNum = 1;
-      delete this.queryParams.parentId;
-      this.getList();
-      this.is_node = {};
-    }
-  }
-};
-</script>

+ 0 - 176
src/views/sync/index.vue

@@ -1,176 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item label="姓名" prop="name">
-        <el-input
-          v-model="queryParams.name"
-          placeholder="请输入姓名"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="电话" prop="phone">
-        <el-input
-          v-model="queryParams.phone"
-          placeholder="请输入电话"
-          clearable
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <!-- <el-form-item label="上报时间">
-        <el-date-picker
-          v-model="dateRange"
-          style="width: 240px"
-          value-format="yyyy-MM-dd"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="开始日期"
-          end-placeholder="结束日期"
-        ></el-date-picker>
-      </el-form-item> -->
-      <el-form-item>
-        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
-        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button type="primary" plain icon="el-icon-position" size="mini" @click="handlePush">推送</el-button>
-      </el-col>
-    </el-row>
-
-    <el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="标题" align="center" prop="title" />
-      <el-table-column label="姓名" align="center" prop="name" />
-      <el-table-column label="电话" align="center" prop="phone" />
-      <el-table-column label="上报类型" align="center" prop="typeText" />
-      <el-table-column label="上报时间" align="center" prop="createTime" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
-        <template slot-scope="scope">
-          <el-button size="mini" type="text" icon="el-icon-tickets" @click="handleDetailed(scope.row)">详情</el-button>
-          <el-button size="mini" type="text" icon="el-icon-position" @click="handlePush(scope.row)">推送</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    <pagination v-show="total>0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" @pagination="getList"/>
-  </div>
-</template>
-
-<script>
-import { listInfo, syncInfo, typeList } from "@/api/report/info";
-
-export default {
-  name: "Info",
-  data() {
-    return {
-      // 遮罩层
-      loading: true,
-      // 选中数组
-      ids: [],
-      // 显示搜索条件
-      showSearch: true,
-      // 总条数
-      total: 0,
-      // 事件上报管理表格数据
-      infoList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 查询参数
-      queryParams: {
-        pageNum: 1,
-        pageSize: 10,
-        userId: null,
-        name: null,
-        phone: null,
-        type: null,
-        description: null,
-        status: null,
-        syncStatus: '2'
-      },
-      // 表单参数
-      form: {},
-      // 表单校验
-      rules: {
-      },
-      imgList: [],
-      videoList: [],
-      documentList: [],
-      typeList: [],
-      dateRange: []
-    };
-  },
-  async created() {
-    const res = await typeList()
-    if (res) {
-      this.typeList = res.data;
-      this.getList();
-    }
-  },
-  methods: {
-    /** 查询事件上报管理列表 */
-    getList() {
-      this.loading = true;
-      listInfo(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
-        this.infoList = response.rows.map(e => {
-          const is_type = this.typeList.find(j => j.typeCode == e.type)
-          e.typeText = is_type?.typeName;
-          return e;
-        });
-        this.total = response.total;
-        this.loading = false;
-      });
-    },
-    // 取消按钮
-    cancel() {
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      this.form = {
-        reportId: null,
-        userId: null,
-        name: null,
-        phone: null,
-        type: null,
-        description: null,
-        createTime: null,
-        syncStatus: "2"
-      };
-      this.resetForm("form");
-    },
-    /** 搜索按钮操作 */
-    handleQuery() {
-      this.queryParams.pageNum = 1;
-      this.getList();
-    },
-    /** 重置按钮操作 */
-    resetQuery() {
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.reportId)
-    },
-    /** 推送按钮操作 */
-    async handlePush(data) {
-      const reportIds = data?.reportId ? [data?.reportId] : this.ids;
-      const res = await syncInfo(reportIds)
-      if (res.code == 200) {
-        this.getList();
-        this.$modal.msgSuccess("推送成功");
-      }
-    },
-    // 详情查询
-    handleDetailed(data) {
-      this.$alert(data.errorLog, '错误日志', {
-        confirmButtonText: '关闭'
-      })
-    }
-  }
-};
-</script>

+ 0 - 132
src/views/vote/activity.vue

@@ -1,132 +0,0 @@
-<template>
-    <div class="app-container" v-loading="loading">
-      <FilterList v-if="tableData" :operate="false" :options="options" :filed="listFileds" :tableData="tableData" :total="total" @query="query" @add="add">
-        <template v-slot:tablesOperate="{ scope }">
-          <el-button type="text" size="mini" @click="handle(scope.row, 'count')" v-if="scope.row.status == 2 || scope.row.status == 3">统计</el-button>
-          <el-button type="text" size="mini" @click="handle(scope.row, 'review')" v-if="scope.row.status == 1 || scope.row.status == 0">审核</el-button>
-          <el-button type="text" size="mini" @click="listEdit(scope.row)">修改</el-button>
-          <el-button type="text" size="mini" @click="listDel(scope.row)">删除</el-button>
-        </template>
-      </FilterList>
-      <el-dialog :title="dialogInfo.title" :visible.sync="dialogInfo.dialogVisible" :width="dialogInfo.width">
-        <dynamicForm ref="dynamicForm" v-if="formFiled && dialogInfo.dialogVisible" :filed="formFiled" :data="formData" @save="formSave"></dynamicForm>
-      </el-dialog>
-    </div>
-  </template>
-  
-  <script>
-  import _ from 'lodash';
-  import { voteAdd, voteUpdate, voteDel, voteQuery, voteFetch } from "@/api/vote/index";
-  export default {
-    name: "Info",
-    dicts: ['vote_status'],
-    data() {
-      return {
-          pagination: true,
-          tableData: [],
-          total: 0,
-          listFileds: [
-            { label: "标题", name: "title" },
-            { label: "状态", name: "statusText" },
-            // { label: "投票策略", name: "strategy", formater: "dict:vote_strategy" },
-          ],
-          dialogInfo: {
-            title: "",
-            dialogVisible: false,
-            width: "50%",
-          },
-          formFiled: [
-            { label: "标题", name: "title" },
-            { label: "状态", name: "status", formater: "dict:vote_status" },
-            // { label: "投票策略", name: "strategy", formater: "dict:vote_strategy" },
-            { label: "报名开始时间", name: "enrollStartTime", formater: 'date:datetime'},
-            { label: "报名截止时间", name: "enrollEndTime", formater: 'date:datetime' },
-            { label: "投票开始时间", name: "pollStartTime", formater: 'date:datetime' },
-            { label: "投票结束时间", name: "pollEndTime", formater: 'date:datetime' },
-            { label: "内容", name: "detail", formater: 'editor' },
-          ],
-          formData: {},
-          loading: false,
-          options: {}
-      };
-    },
-    async created() {
-      this.query();
-    },
-    methods: {
-      // 操作点击
-      handle(data, name) {
-        if (name == 'count') {
-          // 进入统计页
-          this.$router.push(`/vote/voteCount?activityId=${data.activityId}`);
-          return;
-        }
-        if (name == 'review') {
-          // 进入审核页
-          this.$router.push(`/vote/voteReview?activityId=${data.activityId}`);
-          return;
-        }
-      },
-      // 列表查询
-      async query(e) {
-        this.loading = true;
-        const res = await voteQuery({ ...e, pageNum: e?.pageNum ?? 1, pageSize: e?.pageSize ?? 10 });
-        if (res.code == 200) {
-          this.tableData = res.rows.map(j => {
-            const dict = this.dict.type.vote_status.find(l => l.value == j.status)
-            j.statusText = dict.label;
-            return j;
-          })
-          this.total = res.total;
-        }
-        this.loading = false;
-      },
-      // 列表修改
-      async listEdit(e) {
-        this.loading = true;
-        const res = await voteFetch( e.activityId);
-        if (res.code == 200) {
-          this.formData = res.data;
-          this.dialogInfo.title = `修改投票活动`;
-          this.dialogInfo.dialogVisible = true;
-        }
-        this.loading = false;
-      },
-      // 列表删除
-      listDel(e) {
-        this.loading = true;
-        this.$confirm('此操作将永久删除该数据, 是否继续?', '提示', { type: 'warning' })
-          .then(async _ => {
-            const res = await voteDel([e.activityId]);
-            if (res.code == 200) {
-              this.$modal.msgSuccess('删除成功');
-              this.query();
-            }
-          })
-          .catch(_ => {});
-        this.loading = false;
-      },
-      // 添加
-      async add() {
-        this.formData = {};
-        this.dialogInfo.title = '添加投票活动';
-        this.dialogInfo.dialogVisible = true;
-      },
-      // 表单保存
-      async formSave(e) {
-        this.loading = true;
-        let res;
-        // 修改
-        if(e.activityId) res = await voteUpdate(e);
-          // 新增
-        if(!e.activityId) res = await voteAdd(e);
-        if (res.code == 200) {
-          this.$modal.msgSuccess(`${e.activityId ? '修改' : '新增'}成功`);
-          this.dialogInfo.dialogVisible = false;
-          this.query();
-        }
-        this.loading = false;
-      }
-    }
-  };
-  </script>

+ 0 - 96
src/views/vote/count.vue

@@ -1,96 +0,0 @@
-<template>
-    <div class="app-container" v-loading="loading">
-      <FilterList v-if="tableData" :operate="false" :options="options" :filed="listFileds" :tableData="tableData" :total="total" @query="query" :useBtn="false">
-        <template v-slot:tablesOperate="{ scope }">
-          <el-button type="text" size="mini" @click="queryDetail(scope.row)">详情</el-button>
-        </template>
-      </FilterList>
-      <el-dialog :title="dialogInfo.title" :visible.sync="dialogInfo.dialogVisible" :width="dialogInfo.width">
-        <dynamicForm ref="dynamicForm" :readOnly="true" v-if="formFiled && dialogInfo.dialogVisible" :filed="formFiled" :data="formData" @save="formSave">
-          <template v-slot:formItem="{ item, formdata }">
-            <imageVideoUpload :value="formdata[item.name]" :disabled="true" :limit="item.limit"></imageVideoUpload>
-          </template>
-        </dynamicForm>
-      </el-dialog>
-    </div>
-  </template>
-  
-  <script>
-  import _ from 'lodash';
-  import { rankings, enlistsInfo } from "@/api/vote/index";
-  export default {
-    name: "Info",
-    dicts: ['vote_status'],
-    data() {
-      return {
-          pagination: true,
-          tableData: [],
-          total: 0,
-          listFileds: [
-             { label: "姓名", name: "user.name" },
-            { label: "电话", name: "user.phone" },
-            { label: "排名", name: "ranking" },
-            { label: "票数", name: "voteNum" },
-          ],
-          dialogInfo: {
-            title: "",
-            dialogVisible: false,
-            width: "50%",
-          },
-          formFiled: [
-            { label: "姓名", name: "user.name" },
-            { label: "电话", name: "user.phone" },
-            { label: "票数", name: "voteNum" },
-            { label: "图片", name: "img", formater: "imageVideoUpload", limit: 3, formater: "slot" },
-            { label: "视频", name: "video", formater: "imageVideoUpload", limit: 3, formater: "slot" },
-            { label: "文档", name: "document", formater: "fileUpload", limit: 3 },
-            { label: "详情", name: "detail", formater: 'textarea' },
-          ],
-          formData: {},
-          loading: false,
-          options: {}
-      };
-    },
-    async created() {
-      this.query();
-    },
-    methods: {
-      // 列表查询
-      async query(e) {
-        this.loading = true;
-        const res = await rankings({ ...e, pageNum: e?.pageNum ?? 1, pageSize: e?.pageSize ?? 10, activityId: this.$route.query.activityId });
-        const pageNum = e?.pageNum ?? 1;
-        const pageSize = e?.pageSize ?? 10;
-        if (res.code == 200) {
-          this.tableData = res.rows.map((e, index, arr) => {
-            for (const key in e.user) {
-              e[`user.${key}`] = e.user[key]
-            }
-            e.ranking = pageNum * pageSize - pageSize + (index + 1);
-            return e;
-          })
-          this.total = res.total;
-        }
-        this.loading = false;
-      },
-      // 列表修改
-      async queryDetail(e) {
-        this.loading = true;
-        const res = await enlistsInfo( e.enlistsId);
-        if (res.code == 200) {
-          this.formData = res.data;
-          for (const key in this.formData.user) {
-            this.formData[`user.${key}`] = this.formData.user[key]
-          }
-          this.formData.voteNum = e.voteNum;
-          this.formData.img = this.formData.resource.filter(j => j.type == 'img').map(j => j.url);
-          this.formData.video = this.formData.resource.filter(j => j.type == 'video').map(j => j.url);
-          this.formData.document = this.formData.resource.filter(j => j.type == 'document').map(j => j.url);
-          this.dialogInfo.title = `作品详情`;
-          this.dialogInfo.dialogVisible = true;
-        }
-        this.loading = false;
-      }
-    }
-  };
-  </script>

+ 0 - 156
src/views/vote/review.vue

@@ -1,156 +0,0 @@
-<template>
-    <div class="app-container" v-loading="loading">
-      <FilterList v-if="tableData" :operate="false" :useBtn="true" :options="options" :filed="listFileds" :tableData="tableData" :total="total" @query="query" @add="add">
-        <template v-slot:tablesOperate="{ scope }">
-          <el-button type="text" size="mini" @click="handle(scope.row.enlistsId, '1')" v-if="scope.row.status == '0'">审核</el-button>
-          <el-button type="text" size="mini" @click="handle(scope.row.enlistsId, '2')" v-if="scope.row.status == '0'">驳回</el-button>
-          <el-button type="text" size="mini" @click="listEdit(scope.row)">修改</el-button>
-          <el-button type="text" size="mini" @click="queryDetail(scope.row)">详情</el-button>
-        </template>
-      </FilterList>
-      <el-dialog :title="dialogInfo.title" :visible.sync="dialogInfo.dialogVisible" :width="dialogInfo.width">
-        <dynamicForm ref="dynamicForm" :readOnly="readOnly" v-if="formFiled && dialogInfo.dialogVisible" :filed="formFiled" :data="formData" @save="formSave">
-          <template v-slot:formItem="{ item, formdata }">
-            <imageVideoUpload v-model="formdata[item.name]" :disabled="readOnly" :limit="item.limit" @uploadInput="uploadInput"></imageVideoUpload>
-          </template>
-        </dynamicForm>
-      </el-dialog>
-    </div>
-  </template>
-  
-  <script>
-  import { enlistsList, enlistsInfo, enlistsReview, enlistsAdd, enlistsUpdata } from "@/api/vote/index";
-  export default {
-    name: "Info",
-    dicts: ['review_status'],
-    data() {
-      return {
-          pagination: true,
-          tableData: [],
-          total: 0,
-          listFileds: [
-            { label: "姓名", name: "name" },
-            { label: "电话", name: "phone" },
-            { label: "审核状态", name: "statusText" },
-            { label: "创建时间", name: "createTime" },
-          ],
-          dialogInfo: {
-            title: "",
-            dialogVisible: false,
-            width: "50%",
-          },
-          formFiled: [
-            { label: "头像", name: "photo", formater: "imageVideoUpload", limit: 1, formater: "slot" },
-            { label: "姓名", name: "name" },
-            { label: "电话", name: "phone" },
-            { label: "排序", name: "orderNum" },
-            { label: "审核状态", name: "status", formater: "dict:review_status" },
-            { label: "图片", name: "img", formater: "imageVideoUpload", limit: 3, formater: "slot" },
-            { label: "视频", name: "video", formater: "imageVideoUpload", limit: 3, formater: "slot" },
-            { label: "文档", name: "document", formater: "fileUpload", limit: 3, type: 'obj' },
-            { label: "详情", name: "detail", formater: 'textarea' },
-          ],
-          formData: {},
-          loading: false,
-          options: {},
-          readOnly: true
-      };
-    },
-    async created() {
-      this.query();
-    },
-    methods: {
-     // 审核操作
-     async handle(enlistsId, status) {
-        if (status == '1') {
-          this.$modal.confirm('是否确认审核"').then(function() {
-            return enlistsReview({ enlistsId, status });
-          }).then(() => {
-            this.query();
-            this.$modal.msgSuccess("审核成功");
-          }).catch(() => {});
-        }else {
-          this.$modal.prompt('请输入驳回原因').then(({ value }) => {
-            return enlistsReview({ enlistsId, status, comment: value });
-          }).then(() => {
-            this.query();
-            this.$modal.msgSuccess("驳回成功");
-          }).catch(() => {});
-        }
-      },
-      // 列表查询
-      async query(e) {
-        this.loading = true;
-        const res = await enlistsList({ ...e, pageNum: e?.pageNum ?? 1, pageSize: e?.pageSize ?? 10, activityId: this.$route.query.activityId });
-        if (res.code == 200) {
-          this.tableData = res.rows.map(e => {
-            const dict = this.dict.type.review_status.find(l => l.value == e.status)
-            if (dict) e.statusText = dict.label;
-            return e;
-          });
-          this.total = res.total;
-        }
-        this.loading = false;
-      },
-      // 列表详情
-      async queryDetail(e) {
-        this.readOnly = true;
-        this.loading = true;
-        const res = await enlistsInfo(e.enlistsId);
-        if (res.code == 200) {
-          this.formData = res.data;
-          this.formData.img = this.formData.resource.filter(j => j.type == 'img').map(j => j.url);
-          this.formData.video = this.formData.resource.filter(j => j.type == 'video').map(j => j.url);
-          this.formData.document = this.formData.resource.filter(j => j.type == 'document').map(j => j.url);
-          this.dialogInfo.title = `详情`;
-          this.dialogInfo.dialogVisible = true;
-        }
-        this.loading = false;
-      },
-      // 添加
-      async add() {
-        this.readOnly = false;
-        this.formData = {};
-        this.dialogInfo.title = '添加';
-        this.dialogInfo.dialogVisible = true;
-      },
-      // 修改
-      async listEdit(e) {
-        this.readOnly = false;
-        const res = await enlistsInfo(e.enlistsId);
-        if (res.code == 200) {
-          this.formData = res.data;
-          this.formData.img = this.formData.resource.filter(j => j.type == 'img').map(j => j.url).toString();
-          this.formData.video = this.formData.resource.filter(j => j.type == 'video').map(j => j.url).toString();
-          this.formData.document = this.formData.resource.filter(j => j.type == 'document').map(j => j.url).toString();
-          this.dialogInfo.title = '修改';
-          this.dialogInfo.dialogVisible = true;
-        }
-      },
-      // 表单保存
-      async formSave(e) {
-        this.loading = true;
-        // 新增
-        let img = [];
-        let video = [];
-        let document = [];
-        if (e.img) img = e.img.split(',').map(e => ({ url: e, type: 'img' }));
-        if (e.video) video = e.video.split(',').map(e => ({ url: e, type: 'video' }));
-        if (e.document && typeof e.document != 'string') document = e.document.map(e => ({ ...e, type: 'document' }));
-        if (e.document && typeof e.document == 'string') document = e.document.split(',').map(e => ({ url: e, type: 'document' }));
-        const resource = [...img, ...video, ...document]
-        const res = !e.enlistsId ? await enlistsAdd({ ...e, activityId: this.$route.query.activityId, resource }) : await enlistsUpdata({ ...e, resource });
-        if (res.code == 200) {
-          this.$modal.msgSuccess(`${e.activityId ? '新增' : '修改'}成功`);
-          this.dialogInfo.dialogVisible = false;
-          this.query();
-        }
-       
-        this.loading = false;
-      },
-      uploadInput(e) {
-        console.log(e, 'uploadInput');
-      }
-    }
-  };
-  </script>

+ 2 - 2
vue.config.js

@@ -37,7 +37,7 @@ module.exports = {
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        target: `http://192.168.0.63:8080`,
+        target: `http://192.168.0.29:8080`,
         // target: `http://192.168.0.46:8080`,
         // target: `http://10.16.11.29:8080`,
         // target: `http://10.16.11.18:8080`,
@@ -47,7 +47,7 @@ module.exports = {
         }
       },
       '/profile/': {
-        target: `http://192.168.0.63:8080`,
+        target: `http://192.168.0.29:8080`,
         // target: `http://192.168.0.46:8080`,
         // target: `http://10.16.11.29:8080`,
         // target: `http://10.16.11.18:8080`,