王旭
2022-10-12 410facfa35a29a14f2dc5a5d74629a8291148aff
src/views/maintenance/tokentool.vue
@@ -8,283 +8,296 @@
    ></My-bread>
    <el-divider />
    <div class="inquire">
      <el-tabs v-model="activeName" @tab-click="handleClick">
        <el-tab-pane
          :label="$t('operatManage.tokentoolObj.first')"
          name="first"
        >
          <div class="herder_box">
            {{ $t("operatManage.operationLogObj.queryRegion") }}
          </div>
          <el-form ref="formData1" :model="serviceform" :inline="true">
            <el-form-item
              :label="$t('operatManage.tokentoolObj.serviceid')"
              prop="name"
            >
              <el-input
                style="width: 200px"
                v-model="serviceform.serviceId"
                :placeholder="$t('common.pleaseInput')"
              />
            </el-form-item>
            <el-form-item
              :label="$t('operatManage.tokentoolObj.serviceName')"
              prop="region"
            >
              <el-input
                style="width: 200px"
                v-model="serviceform.serviceId"
                :placeholder="$t('common.pleaseInput')"
              />
            </el-form-item>
            <el-form-item>
              <el-button size="small" @click="onSubmit">{{
                $t("operatManage.tokentoolObj.excelTemplate")
              }}</el-button>
              <el-button size="small" @click="onSubmit">{{
                $t("operatManage.tokentoolObj.uploadExcel")
              }}</el-button>
            </el-form-item>
            <br />
            <el-form-item
              :label="$t('operatManage.tokentoolObj.serviceToken')"
              prop="region"
            >
              <el-input
                style="width: 200px"
                v-model="serviceform.serviceToken"
                :disabled="true"
                :title="$t('operatManage.tokentoolObj.pleaseInput')"
                :placeholder="$t('operatManage.tokentoolObj.pleaseInput')"
              />
            </el-form-item>
            <el-form-item>
              <el-button
                icon="el-icon-document-copy"
                size="small"
                @click="oncopy"
                >{{ $t("operatManage.tokentoolObj.copy") }}</el-button
              >
            </el-form-item>
            <!-- 查询 清空 -->
            <el-form-item>
              <el-button icon="el-icon-search" @click="onSubmit">{{
                $t("common.iquery")
              }}</el-button>
              <el-button icon="el-icon-delete" @click="onEmpty('formData1')">{{
                $t("common.empty")
              }}</el-button>
            </el-form-item>
          </el-form>
          <el-table :data="tableData" stripe style="width: 100%">
            <el-table-column
              width="120"
              type="index"
              :label="$t('operatManage.tokentoolObj.serialnumber')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.serviceName')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.serviceAddress')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.porstServiceAddress')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.serviceid')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.sourcesystem')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.pubicnot')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.suffixID')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.goonlinenot')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.primaryKey')"
            />
            <el-table-column
              fixed="right"
              :label="$t('operatManage.tokentoolObj.operation')"
              width="300"
            >
              <template #default>
                <!-- <el-button type="primary" size="small">修改</el-button> -->
                <el-button type="danger" size="small">{{
                  $t("common.delete")
                }}</el-button>
                <el-button type="warning" size="small">{{
                  $t("common.update")
                }}</el-button>
                <el-button type="primary" size="small">{{
                  $t("operatManage.tokentoolObj.applyToken")
                }}</el-button>
              </template>
            </el-table-column>
          </el-table>
        </el-tab-pane>
        <el-tab-pane
          :label="$t('operatManage.tokentoolObj.second')"
          name="second"
        >
          <div class="herder_box">
            {{ $t("operatManage.operationLogObj.queryRegion") }}
          </div>
          <el-form ref="formData1" :model="tokenform" :inline="true">
            <el-form-item
              :label="$t('operatManage.tokentoolObj.serviceid')"
              prop="name"
            >
              <el-input
                style="width: 200px"
                v-model="tokenform.tokenId"
                :placeholder="$t('common.pleaseInput')"
              />
            </el-form-item>
            <el-form-item
              :label="$t('operatManage.tokentoolObj.tokenName')"
              prop="region"
            >
              <el-input
                style="width: 200px"
                v-model="tokenform.tokenName"
                :placeholder="$t('common.pleaseInput')"
              />
            </el-form-item>
            <el-form-item
              :label="$t('operatManage.tokentoolObj.tokenStatus')"
              prop="region"
            >
              <el-select
                v-model="tokenform.region"
                :placeholder="$t('common.choose')"
              >
                <el-option
                  :label="$t('operatManage.tokentoolObj.tokenAll')"
                  value="1"
                />
                <el-option
                  :label="$t('operatManage.tokentoolObj.tokeNormal')"
                  value="2"
                />
                <el-option
                  :label="$t('operatManage.tokentoolObj.tokenInvalid')"
                  value="3"
                />
              </el-select>
            </el-form-item>
            <!-- 查询 清空 -->
            <el-form-item>
              <el-button icon="el-icon-search" @click="onSubmit">{{
                $t("common.iquery")
              }}</el-button>
              <el-button icon="el-icon-delete" @click="onEmpty('formData1')">{{
                $t("common.empty")
              }}</el-button>
            </el-form-item>
          </el-form>
          <el-table :data="tableData1" stripe style="width: 100%">
            <el-table-column
              width="120"
              type="index"
              :label="$t('operatManage.tokentoolObj.serialnumber')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.serviceName')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.applysystem')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.applicantIP')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.applicationtime')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.applytime')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.tokenstring')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.resourcetoken')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.tokeninformation')"
            />
            <el-table-column
              prop="creationtime"
              :label="$t('operatManage.tokentoolObj.tokenStatus')"
            />
            <el-table-column
              fixed="right"
              :label="$t('operatManage.tokentoolObj.autorenew')"
            >
            </el-table-column>
            <el-table-column
              fixed="right"
              :label="$t('operatManage.tokentoolObj.operation')"
              width="200"
            >
              <template #default>
                <el-button type="danger" size="small">{{
                  $t("operatManage.tokentoolObj.tokenInvalid")
                }}</el-button>
                <el-button type="warning" size="small">{{
                  $t("operatManage.tokentoolObj.tokenRenewal")
                }}</el-button>
              </template>
            </el-table-column>
          </el-table>
        </el-tab-pane>
      </el-tabs>
      <div style="margin-top: 40px" class="pagination_box">
        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :current-page="currentPage4"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="10"
          layout="total, sizes, prev, pager, next, jumper"
          :total="9"
        >
        </el-pagination>
      <div class="herder_box">
        {{ $t('operatManage.operationLogObj.queryRegion') }}
      </div>
      <el-form ref="formData" :model="ruleForm" :inline="true">
        <el-form-item
          :label="$t('operatManage.tokentoolObj.tokenQuery')"
          prop="region"
        >
          <el-input
            style="width: 200px"
            v-model="ruleForm.name"
            :placeholder="$t('common.pleaseInput')"
          />
        </el-form-item>
        <el-form-item :label="$t('operatManage.tokentoolObj.tokenStatus')">
          <el-select
            v-model="ruleForm.value"
            :placeholder="$t('common.choose')"
          >
            <el-option
              value="0"
              :label="$t('operatManage.tokentoolObj.temporary')"
            ></el-option>
            <el-option
              value="1"
              :label="$t('operatManage.tokentoolObj.fixed')"
            ></el-option>
          </el-select>
        </el-form-item>
        <!-- 查询 清空 -->
        <el-form-item>
          <el-button icon="el-icon-search" @click="onSubmit">{{
            $t('common.iquery')
          }}</el-button>
          <el-button icon="el-icon-delete" @click="onEmpty('formData1')">{{
            $t('common.empty')
          }}</el-button>
          <el-button @click="InsertFormdialog = true" icon="el-icon-edit">{{
            $t('common.append')
          }}</el-button>
          <el-button @click="delTokenData" icon="el-icon-delete">{{
            $t('common.delete')
          }}</el-button>
        </el-form-item>
      </el-form>
    </div>
    <div class="table_box">
      <el-table
        :data="tableData"
        height="99%"
        style="width: 100%"
        @selection-change="handleSelectionChange"
      >
        <el-table-column type="selection" width="55" />
        <el-table-column
          width="70"
          align="center"
          type="index"
          :label="$t('operatManage.tokentoolObj.index')"
        />
        <el-table-column
          prop="token"
          align="center"
          :label="$t('operatManage.tokentoolObj.token')"
        />
        <el-table-column
          prop="duration"
          align="center"
          :label="$t('operatManage.tokentoolObj.duration')"
        />
        <el-table-column
          prop="expire"
          align="center"
          :label="$t('operatManage.tokentoolObj.expire')"
          :formatter="formatTime"
        />
        <el-table-column
          prop="type"
          align="center"
          :label="$t('operatManage.tokentoolObj.type')"
        >
          <template slot-scope="scope">
            <span v-if="scope.row.type === 0">临时</span>
            <span v-if="scope.row.type === 1">固定</span>
          </template>
        </el-table-column>
        <el-table-column
          prop="ip"
          align="center"
          :label="$t('operatManage.tokentoolObj.ip')"
        />
        <el-table-column
          prop="createUser"
          align="center"
          :label="$t('operatManage.tokentoolObj.createUser')"
        />
        <el-table-column
          prop="createTime"
          align="center"
          :label="$t('operatManage.tokentoolObj.createTime')"
          :formatter="formatTime"
        />
        <el-table-column
          prop="updateUser"
          align="center"
          :label="$t('operatManage.tokentoolObj.updateUser')"
        />
        <el-table-column
          prop="updateTime"
          align="center"
          :label="$t('operatManage.tokentoolObj.updateTime')"
          :formatter="formatTime"
        />
        <el-table-column
          fixed="right"
          :label="$t('operatManage.tokentoolObj.operation')"
          width="320"
          align="center"
        >
          <template slot-scope="scope">
            <el-button type="danger" size="small">{{
              $t('operatManage.tokentoolObj.invalid')
            }}</el-button>
            <el-button type="warning" size="small">{{
              $t('operatManage.tokentoolObj.renewal')
            }}</el-button>
            <el-button
              @click="handleEdit(scope.$index, scope.row)"
              type="warning"
              plain
              size="small"
              >{{ $t('common.update') }}</el-button
            >
          </template>
        </el-table-column>
      </el-table>
    </div>
    <div class="pagination_box">
      <el-pagination
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="listData.pageIndex"
        :page-sizes="[10, 20, 30, 40]"
        :page-size="listData.pageSize"
        layout="total, sizes, prev, pager, next, jumper"
        :total="count"
      >
      </el-pagination>
    </div>
    <!-- 新增弹窗 -->
    <el-dialog
      :title="$t('operatManage.tokentoolObj.addToken')"
      style="overflow: hidden"
      :visible.sync="InsertFormdialog"
    >
      <el-form ref="formData1" :model="insertform">
        <el-form-item
          :label="$t('operatManage.tokentoolObj.token')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="insertform.token"
            :placeholder="$t('common.pleaseInput')"
          />
        </el-form-item>
        <el-form-item
          :label="$t('operatManage.tokentoolObj.duration')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="insertform.duration"
            :placeholder="$t('common.pleaseInput')"
          />
        </el-form-item>
        <el-form-item
          :label="$t('operatManage.tokentoolObj.type')"
          :label-width="formLabelWidth"
        >
          <el-select
            v-model="insertform.type"
            :placeholder="$t('common.choose')"
          >
            <el-option
              value="0"
              :label="$t('operatManage.tokentoolObj.temporary')"
            ></el-option>
            <el-option
              value="1"
              :label="$t('operatManage.tokentoolObj.fixed')"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item
          :label="$t('operatManage.tokentoolObj.ip')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="insertform.ip"
            :placeholder="$t('common.pleaseInput')"
          />
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="insertFromDataClose">{{
          $t('common.close')
        }}</el-button>
        <el-button type="primary" @click="insertFromData">{{
          $t('common.confirm')
        }}</el-button>
      </div>
    </el-dialog>
    <!-- 修改弹窗 -->
    <el-dialog
      :title="$t('operatManage.tokentoolObj.editToken')"
      style="overflow: hidden"
      :visible.sync="EditFormdialog"
    >
      <el-form ref="formData1" :model="insertform">
        <el-form-item
          :label="$t('operatManage.tokentoolObj.token')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="upform.token"
            :placeholder="$t('common.pleaseInput')"
          />
        </el-form-item>
        <el-form-item
          :label="$t('operatManage.tokentoolObj.duration')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="upform.duration"
            :placeholder="$t('common.pleaseInput')"
          />
        </el-form-item>
        <el-form-item
          :label="$t('operatManage.tokentoolObj.type')"
          :label-width="formLabelWidth"
        >
          <el-select
            v-model="upform.edit"
            @change="changeGame"
            :placeholder="$t('common.choose')"
          >
            <el-option
              value="0"
              :label="$t('operatManage.tokentoolObj.temporary')"
            ></el-option>
            <el-option
              value="1"
              :label="$t('operatManage.tokentoolObj.fixed')"
            ></el-option>
          </el-select>
        </el-form-item>
        <el-form-item
          :label="$t('operatManage.tokentoolObj.ip')"
          :label-width="formLabelWidth"
        >
          <el-input
            v-model="upform.ip"
            :placeholder="$t('common.pleaseInput')"
          />
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="editFromDataClose">{{
          $t('common.close')
        }}</el-button>
        <el-button type="primary" @click="editFromData">{{
          $t('common.confirm')
        }}</el-button>
      </div>
    </el-dialog>
  </div>
</template>
<script>
import MyBread from "../../components/MyBread.vue";
import moment from 'moment';
import MyBread from '../../components/MyBread.vue';
import {
  select_Token_ByPageAndCount,
  insertToken,
  updateToken,
  deleteTokens,
} from '../../api/api.js';
export default {
  //import引入的组件需要注入到对象中才能使用
  components: {
@@ -293,37 +306,228 @@
  data() {
    return {
      currentPage4: 1,
      activeName: 'first',
      serviceform: {
        serviceId: "",
        serviceName: "",
        serviceToken: "",
      formLabelWidth: '130px',
      InsertFormdialog: false,
      EditFormdialog: false,
      upform: {},
      ruleForm: {},
      insertform: {},
      tableData: [],
      multipleSelection: [],
      count: 0,
      listData: {
        name: null,
        type: null,
        pageIndex: 1,
        pageSize: 10,
      },
      tokenform: {
        tokenId: "",
        tokenName: "",
        tokenStatus: ""
      },
      tableData: [{}],
      tableData1: [{}]
    };
  },
  created() {
    this.getRoleTabelData();
  },
  methods: {
    async delTokenData() {
      var std = [];
      for (var i in this.multipleSelection) {
        std.push(this.multipleSelection[i].id);
      }
      const data = await deleteTokens({ ids: std.toString() });
      if (data.code == 200) {
        this.$message({
          message: '删除成功!',
          type: 'success',
        });
        this.getRoleTabelData();
      } else {
        this.$message({
          message: '删除失败!',
          type: 'warning',
        });
      }
    },
    editFromDataClose() {
      this.EditFormdialog = false;
      this.upform = {};
    },
    async editFromData() {
      this.upform.type = parseInt(this.upform.edit);
      if (this.upform.duration != null && this.upform.duration != undefined) {
        var date = this.formomentTime(this.upform.createTime);
        this.upform.expire = this.getEditTime(this.upform.duration, date);
      }
      const data = await updateToken(this.upform);
      if (data.code == 200) {
        this.EditFormdialog = false;
        this.upform = {};
        this.$message({
          message: '修改成功!',
          type: 'success',
        });
        this.getRoleTabelData();
      } else {
        this.$message({
          message: '修改失败!',
          type: 'warning',
        });
      }
    },
    changeGame(id) {
      this.$forceUpdate(); //在下拉框上绑定change事件 更新视图 这样就不会有视图更新的问题
    },
    handleEdit(index, row) {
      this.EditFormdialog = true;
      this.upform = row;
      this.upform.edit = JSON.stringify(row.type);
    },
    handleSelectionChange(val) {
      this.multipleSelection = val;
    },
    insertFromDataClose() {
      this.InsertFormdialog = false;
      this.insertform = {};
    },
    async insertFromData() {
      if (
        this.insertform.duration != null &&
        this.insertform.duration != undefined
      ) {
        this.insertform.expire = this.getNowDate(this.insertform.duration);
      }
      const data = await insertToken(this.insertform);
      if (data.code == 200) {
        this.InsertFormdialog = false;
        this.insertform = {};
        this.$message({
          message: '添加成功!',
          type: 'success',
        });
        this.getRoleTabelData();
      } else {
        this.$message({
          message: '添加失败!',
          type: 'warning',
        });
      }
    },
    getEditTime(res, time) {
      var date = new Date(time);
      date.setMinutes(date.getMinutes() + parseInt(res), date.getSeconds(), 0);
      var year = date.getFullYear();
      var month =
        date.getMonth() + 1 > 9
          ? date.getMonth() + 1
          : '0' + (date.getMonth() + 1);
      var day = date.getDate() > 9 ? date.getDate() : '0' + date.getDate();
      // var todayDate = year + '-' + month + '-' + day
      var hour = date.getHours() > 9 ? date.getHours() : '0' + date.getHours();
      var min =
        date.getMinutes() > 9 ? date.getMinutes() : '0' + date.getMinutes();
      var sec =
        date.getSeconds() > 9 ? date.getSeconds() : '0' + date.getSeconds();
      var todayDate =
        year + '-' + month + '-' + day + ' ' + hour + ':' + min + ':' + sec;
      return todayDate;
    },
    getNowDate(res) {
      var date = new Date();
      var min = date.getMinutes(); //2. 获取当前分钟
      date.setMinutes(min + parseInt(res));
      var sign2 = ':';
      var year = date.getFullYear(); // 年
      var month = date.getMonth() + 1; // 月
      var day = date.getDate(); // 日
      var hour = date.getHours(); // 时
      var minutes = date.getMinutes(); // 分
      var seconds = date.getSeconds(); //秒
      var weekArr = [
        '星期一',
        '星期二',
        '星期三',
        '星期四',
        '星期五',
        '星期六',
        '星期天',
      ];
      var week = weekArr[date.getDay()];
      // 给一位数的数据前面加 “0”
      if (month >= 1 && month <= 9) {
        month = '0' + month;
      }
      if (day >= 0 && day <= 9) {
        day = '0' + day;
      }
      if (hour >= 0 && hour <= 9) {
        hour = '0' + hour;
      }
      if (minutes >= 0 && minutes <= 9) {
        minutes = '0' + minutes;
      }
      if (seconds >= 0 && seconds <= 9) {
        seconds = '0' + seconds;
      }
      return (
        year +
        '-' +
        month +
        '-' +
        day +
        ' ' +
        hour +
        sign2 +
        minutes +
        sign2 +
        seconds
      );
    },
    async getRoleTabelData() {
      if (this.listData.tab == '') {
        delete this.listData.tab;
      }
      this.listData.name = this.ruleForm.name;
      this.listData.type = this.ruleForm.value;
      if (this.ruleForm.value != null) {
        this.listData.type = parseInt(this.ruleForm.value);
      }
      debugger;
      const data = await select_Token_ByPageAndCount(this.listData);
      if (data.code != 200) {
        this.$message.error('列表调用失败');
      }
      this.tableData = data.result;
      this.count = data.count;
    },
    handleSizeChange(val) {
      console.log(`每页 ${val} 条`);
      this.listData.pageSize = val;
      this.getRoleTabelData();
    },
    handleCurrentChange(val) {
      console.log(`当前页: ${val}`);
      this.listData.pageIndex = val;
      this.getRoleTabelData();
    },
    onSubmit() {
      console.log("submit!");
      this.listData.pageIndex = 1;
      this.listData.pageSize = 10;
      this.getRoleTabelData();
    },
    onEmpty(formData1) {
      this.$refs[formData1].resetFields()//重置表单数据
    }
      this.ruleForm = {};
      this.listData.pageIndex = 1;
      this.listData.pageSize = 10;
      this.getRoleTabelData();
    },
    formatTime(row, column) {
      let date = row[column.property];
      return this.formomentTime(date);
    },
    formomentTime(date) {
      if (date === undefined || date === null) {
        return;
      }
      return moment(parseInt(date)).format('YYYY-MM-DD HH:mm:ss');
    },
  },
  created() { },
};
</script>
<style scoped>
@@ -340,19 +544,36 @@
  height: 100%;
  padding: 10px;
  box-sizing: border-box;
  .el-input {
    width: 745px;
  }
  .el-select {
    width: 745px;
  }
  .inquire {
    padding: 10px;
    margin-top: 20px;
    background: #fff;
    border-radius: 5px;
    border: 1px solid rgb(202, 201, 204);
    margin-bottom: 20px;
    margin-bottom: 10px;
    .herder_box {
      padding: 10px;
      border-bottom: 1px solid #ccc;
      margin-bottom: 20px;
      font-size: 14px;
    }
    .el-select {
      width: 200px;
    }
  }
  .table_box {
    padding: 10px;
    background: #fff;
    height: 68%;
    border-radius: 5px;
    border: 1px solid rgb(202, 201, 204);
    margin-bottom: 10px;
  }
}
</style>