Newer
Older
smart-economy / src / components / economic / management / zbManage.vue
StephanieGitHub on 26 Jan 2021 8 KB first commit
<template>
  <div class="full-box">
    <div class="" style="width: 100%;height:100%;" >
      <div class="top-tip-box t-title">当前位置:指标管理</div>
      <div class="table-info-box ">
        <div class="table-search-box onerow">
          <div class="search-info-box">
            <div class="search-item">
              <div class="search-item-label">指标名称</div>
              <el-input v-model="zbName" placeholder="请输入内容"></el-input>
            </div>
            <el-button class="search-btn" type="primary" @click="searchResult">查询</el-button>
            <el-button class="search-btn" type="primary" @click="reset">重置</el-button>
            <el-button class="operate-btn" type="primary" @click="addData">新增指标</el-button>
          </div>
          <div class="search-border-box">
            <div class="sbb-line"></div>
            <div class="sbb-role"></div>
          </div>
        </div>
        <div class="table-result-boxx">
          <div class="table-container-style">
            <el-table :data="tableData.list" height="200">
              <el-table-column type="index" align="center" label="序号" width="80"></el-table-column>
              <el-table-column prop="name" align="center" label="指标名称" ></el-table-column>
              <el-table-column prop="period" align="center" label="周期"></el-table-column>
              <el-table-column prop="cond" align="center" label="条件"> </el-table-column>
              <el-table-column prop="threshold" align="center" label="阈值" ></el-table-column>
              <el-table-column prop="updateTime" align="center" label="设置时间"></el-table-column>
              <el-table-column align="center" label="操作">
                <template slot-scope="scope">
                  <div class="table-edit-btn" @click="editRowData(scope.row)">编辑</div>
                </template>
              </el-table-column>
            </el-table>
            <el-pagination @current-change="handlePageChange" background layout="total, prev, pager, next" :total="tableData.total" :current-page="tableData.pageNum" :page-size="tableData.pageSize" :page-count="tableData.pages" style="text-align: right;"></el-pagination>
          </div>
        </div>

      </div>
    </div>

    <el-dialog :title="popTitle" :visible.sync="dialogVisible" width="480px" :close-on-click-modal=false>
      <el-form :model="popFilter" :rules="popRules" ref="updateForm" label-width="120px">
        <el-form-item label="指标名称" prop="name" v-if="false">
          <el-input v-model="popFilter.name" clearable auto-complete="off" ></el-input>
        </el-form-item>
        <el-form-item label="指标名称" prop="name">
          <el-select v-model="popFilter.name" filterable clearable placeholder="请选择"  >
            <el-option  v-for="(item,index) in editListData.zbList" :key="index" :label="item.name" :value="item.name"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="周期" prop="period">
          <el-select v-model="popFilter.period" filterable clearable placeholder="请选择"  >
            <el-option  v-for="(item,index) in editListData.period" :key="index" :label="item" :value="item"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="条件" prop="cond">
          <el-select v-model="popFilter.cond" filterable clearable placeholder="请选择" >
            <el-option  v-for="item in editListData.conditionType" :key="item" :label="item" :value="item"></el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="阈值" prop="threshold">
          <el-input v-model="popFilter.threshold" clearable auto-complete="off"  ></el-input>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogVisible = false">取 消</el-button>
        <el-button type="primary" @click="updateData">确 定</el-button>
      </div>
    </el-dialog>
  </div>
</template>

<script>
  let month = new Date().getMonth()+1;
  let year = month<10?new Date().getFullYear()+"-0"+month :new Date().getFullYear()+"-"+month;
  export default {
    name: 'yjManage',
    data () {
      return {
        dialogVisible:false,
        timeFilter:[new Date().format("yyyy-")+"01",new Date(year).format("yyyy-MM")],
        zbName:'',
        tableData:{
          list: [],
          pageNum: 1,
          pageSize: 10,
          pages: 1,
          total: 1,
        },
        rowData:{},
        popTitle:'',
        addOrEdit:'add',
        editListData:{
          zbList:[],
          period:['每周','每月','每季度','半年','全年'],
          conditionType:['>','<','='],
        },
        popFilter:{
          name:'',
          cond: "",/*条件*/
          period: "",/*周期*/
          threshold:'',/*阈值*/
        },
        popRules:{
          name:[{ required: true, message: '请选择指标名称', trigger: 'change'}],
          cond:[{ required: true, message: '请选择条件', trigger: 'change'}],
          period:[{ required: true, message: '请选择周期', trigger: 'change'}],
          threshold:[{ required: true, message: '请填写指标阈值', trigger: 'blur'}],
        },
      }
    },
    mounted (){},
    created(){
      this.GLOBAL.app.getDictList(resp => {
        this.editListData.zbList = resp["指标"];
      })
      this.getList();
    },
    watch:{},
    methods:{
      searchResult(){
        this.getList();
      },
      reset(){
        this.zbName=''
      },
      getList(pageNum){
        let vm = this;
        let pageNums = vm.$Util.isEmpty(pageNum) ? vm.tableData.pageNum : pageNum;
        vm.$http.get('/dx-economy-api/target/page',{params:{name:vm.zbName,pageNum:pageNums,pageSize:vm.tableData.pageSize}}).then(function (resp) {
          let _data = resp.data;
          if (_data.code === 200 && !vm.$Util.isEmpty(_data.data)) {
            vm.tableData.list = _data.data.list;
            vm.tableData.pageNum = resp.data.data.pageNum;
            vm.tableData.total = resp.data.data.total;
          }
        })
      },
      resetForm(formName) {
        var _this = this;
        if(!_this.$Util.isEmpty(_this.$refs[formName])){
          _this.$refs[formName].resetFields();
          _this.popFilter = {name:'',cond: "",period: "",threshold:''};
        }
      },
      addData() {
        let vm = this;
        vm.resetForm("updateForm");
        vm.rowData={};
        vm.addOrEdit='add';
        vm.popTitle = '新增指标';
        vm.dialogVisible = true;
      },
      editRowData(rowData){
        let vm = this;
        vm.resetForm("updateForm");
        vm.addOrEdit='edit';
        vm.dialogVisible = true;
        vm.popTitle = '修改指标';
        vm.rowData = rowData;
        vm.popFilter.id = rowData.id;
        vm.popFilter.name = rowData.name;
        vm.popFilter.cond = rowData.cond;
        vm.popFilter.period = rowData.period;
        vm.popFilter.threshold = rowData.threshold;
      },
      updateData(){
        let vm = this
        vm.$refs.updateForm.validate((valid) => {
          if (valid) {
            var data = JSON.parse(JSON.stringify(vm.popFilter));
            if (vm.addOrEdit == 'edit') {
              vm.$http.put('/dx-economy-api/target/' + vm.rowData.id, data).then(function (resp) {
                let _data = resp.data;
                if (_data.code === 200 && !vm.$Util.isEmpty(_data.data)) {
                  vm.rowData.period = vm.popFilter.period;
                  vm.rowData.threshold = vm.popFilter.threshold;
                  vm.rowData.cond = vm.popFilter.cond;
                  vm.rowData.name = vm.popFilter.name;
                  vm.dialogVisible = false;
                  vm.$message.success("修改成功!")
                } else {
                  vm.$message.error(_data.message);
                }
              })
            } else {
              vm.$http.post('/dx-economy-api/target/', data).then(function (resp) {
                let _data = resp.data;
                if (_data.code === 200 && !vm.$Util.isEmpty(_data.data)) {
                  vm.$message.success("新增成功!")
                  vm.getList();
                  vm.dialogVisible = false;
                } else {
                  vm.$message.error(_data.message);
                }
              })
            }
          }
        })
      },
      handlePageChange(currentPage){
        this.getList(null,currentPage)
      },
    }
  }
</script>
<style></style>
<style scoped>
  .aaa{}
  .aaa{}
  .aaa{}
  .aaa{}
  .aaa{}
</style>