提交代码
This commit is contained in:
		
							parent
							
								
									b69ef1dd92
								
							
						
					
					
						commit
						d9a58838ad
					
				| 
						 | 
				
			
			@ -158,7 +158,7 @@ export const dynamicRoutes = [
 | 
			
		|||
        path: 'index/:evaluateId(\\d+)',
 | 
			
		||||
        component: () => import('@/views/dataCenter/evaluate/child/evaluateDetails'),
 | 
			
		||||
        name: 'Data',
 | 
			
		||||
        meta: { title: '模型评价详情', activeMenu: '/dataCenter/evaluateDetails' }
 | 
			
		||||
        meta: { title: '模型评价详情', activeMenu: '/dataCenter/evaluate/evaluateDetails' }
 | 
			
		||||
      }
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -76,7 +76,7 @@
 | 
			
		|||
      <el-table-column label="操作" align="center" min-width="140" class-name="small-padding fixed-width">
 | 
			
		||||
        <template slot-scope="scope">
 | 
			
		||||
          <el-button
 | 
			
		||||
            v-if="scope.row.annotatorIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            v-if="scope.row.reviewerIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            size="mini"
 | 
			
		||||
            type="text"
 | 
			
		||||
            @click="handleExamine(scope.row)"
 | 
			
		||||
| 
						 | 
				
			
			@ -85,7 +85,7 @@
 | 
			
		|||
          >审核
 | 
			
		||||
          </el-button>
 | 
			
		||||
          <el-button
 | 
			
		||||
            v-if="scope.row.reviewerIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            v-if="scope.row.annotatorIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            :disabled="scope.row.status0Count ===0"
 | 
			
		||||
            size="mini"
 | 
			
		||||
            type="text"
 | 
			
		||||
| 
						 | 
				
			
			@ -94,7 +94,7 @@
 | 
			
		|||
          >智能标注
 | 
			
		||||
          </el-button>
 | 
			
		||||
          <el-button
 | 
			
		||||
            v-if="scope.row.reviewerIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            v-if="scope.row.annotatorIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            size="mini"
 | 
			
		||||
            type="text"
 | 
			
		||||
            @click="handleAnnotation(scope.row)"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -150,7 +150,9 @@ export default {
 | 
			
		|||
    loadTaskList() {
 | 
			
		||||
      getMyNoAnnotatedTask().then(res => {
 | 
			
		||||
        this.taskList = res.data
 | 
			
		||||
        console.log(this.taskList)
 | 
			
		||||
        this.taskId = Number(this.$route.params && this.$route.params.taskId)
 | 
			
		||||
        console.log(this.taskId)
 | 
			
		||||
        this.selectTask(this.taskId)
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -76,7 +76,7 @@
 | 
			
		|||
      <el-table-column label="操作" align="center" min-width="140" class-name="small-padding fixed-width">
 | 
			
		||||
        <template slot-scope="scope">
 | 
			
		||||
          <el-button
 | 
			
		||||
            v-if="scope.row.annotatorIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            v-if="scope.row.reviewerIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            size="mini"
 | 
			
		||||
            type="text"
 | 
			
		||||
            @click="handleExamine(scope.row)"
 | 
			
		||||
| 
						 | 
				
			
			@ -85,7 +85,7 @@
 | 
			
		|||
          >审核
 | 
			
		||||
          </el-button>
 | 
			
		||||
          <el-button
 | 
			
		||||
            v-if="scope.row.reviewerIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            v-if="scope.row.annotatorIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            :disabled="scope.row.status0Count ===0"
 | 
			
		||||
            size="mini"
 | 
			
		||||
            type="text"
 | 
			
		||||
| 
						 | 
				
			
			@ -94,7 +94,7 @@
 | 
			
		|||
          >智能标注
 | 
			
		||||
          </el-button>
 | 
			
		||||
          <el-button
 | 
			
		||||
            v-if="scope.row.reviewerIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            v-if="scope.row.annotatorIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            size="mini"
 | 
			
		||||
            type="text"
 | 
			
		||||
            @click="handleAnnotation(scope.row)"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -76,7 +76,7 @@
 | 
			
		|||
      <el-table-column label="操作" align="center" min-width="140" class-name="small-padding fixed-width">
 | 
			
		||||
        <template slot-scope="scope">
 | 
			
		||||
          <el-button
 | 
			
		||||
            v-if="scope.row.annotatorIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            v-if="scope.row.reviewerIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            size="mini"
 | 
			
		||||
            type="text"
 | 
			
		||||
            @click="handleExamine(scope.row)"
 | 
			
		||||
| 
						 | 
				
			
			@ -85,7 +85,7 @@
 | 
			
		|||
          >审核
 | 
			
		||||
          </el-button>
 | 
			
		||||
          <el-button
 | 
			
		||||
            v-if="scope.row.reviewerIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            v-if="scope.row.annotatorIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            :disabled="scope.row.status0Count ===0"
 | 
			
		||||
            size="mini"
 | 
			
		||||
            type="text"
 | 
			
		||||
| 
						 | 
				
			
			@ -94,7 +94,7 @@
 | 
			
		|||
          >智能标注
 | 
			
		||||
          </el-button>
 | 
			
		||||
          <el-button
 | 
			
		||||
            v-if="scope.row.reviewerIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            v-if="scope.row.annotatorIds.split(',').map(Number).includes(getUserId)"
 | 
			
		||||
            size="mini"
 | 
			
		||||
            type="text"
 | 
			
		||||
            @click="handleAnnotation(scope.row)"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -32,7 +32,7 @@
 | 
			
		|||
</template>
 | 
			
		||||
 | 
			
		||||
<script>
 | 
			
		||||
import { getDetails, addDetails, updateDetails } from '@/api/dataCenter/evaluateDetails'
 | 
			
		||||
import { getDetails, addDetails, updateDetails } from '@/api/dataCenter/evaluateDetails';
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  props: {
 | 
			
		||||
| 
						 | 
				
			
			@ -45,16 +45,23 @@ export default {
 | 
			
		|||
  computed: {
 | 
			
		||||
    isOpen: {
 | 
			
		||||
      get() {
 | 
			
		||||
        return this.open
 | 
			
		||||
        return this.open;
 | 
			
		||||
      },
 | 
			
		||||
      set(value) {
 | 
			
		||||
        this.$emit('dialog-cancel')
 | 
			
		||||
        this.$emit('dialog-cancel');
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
      form: {},
 | 
			
		||||
      form: {
 | 
			
		||||
        justSqmple: null,
 | 
			
		||||
        loseSample: null,
 | 
			
		||||
        tpNum: null,
 | 
			
		||||
        tnNum: null,
 | 
			
		||||
        fpNum: null,
 | 
			
		||||
        fnNum: null
 | 
			
		||||
      },
 | 
			
		||||
      rules: {
 | 
			
		||||
        justSqmple: [
 | 
			
		||||
          { required: true, message: '请输入正样本数', trigger: 'blur' },
 | 
			
		||||
| 
						 | 
				
			
			@ -63,66 +70,95 @@ export default {
 | 
			
		|||
        loseSample: [
 | 
			
		||||
          { required: true, message: '请输入负样本数', trigger: 'blur' },
 | 
			
		||||
          { pattern: /^[1-9]\d*$/, message: '只能输入正整数', trigger: 'blur' }
 | 
			
		||||
 | 
			
		||||
        ],
 | 
			
		||||
        tpNum: [
 | 
			
		||||
          { required: true, message: '请输入TP数量', trigger: 'blur' },
 | 
			
		||||
          { pattern: /^[1-9]\d*$/, message: '只能输入正整数', trigger: 'blur' }
 | 
			
		||||
 | 
			
		||||
          { pattern: /^[1-9]\d*$/, message: '只能输入正整数', trigger: 'blur' },
 | 
			
		||||
          { validator: this.validatePositiveSamples, trigger: 'blur' }
 | 
			
		||||
        ],
 | 
			
		||||
        tnNum: [{ required: true, message: '请输入TN数量', trigger: 'blur' },
 | 
			
		||||
          { pattern: /^[1-9]\d*$/, message: '只能输入正整数', trigger: 'blur' }
 | 
			
		||||
        fnNum: [
 | 
			
		||||
          { required: true, message: '请输入FN数量', trigger: 'blur' },
 | 
			
		||||
          { pattern: /^[1-9]\d*$/, message: '只能输入正整数', trigger: 'blur' },
 | 
			
		||||
          { validator: this.validatePositiveSamples, trigger: 'blur' }
 | 
			
		||||
        ],
 | 
			
		||||
        fpNum: [{ required: true, message: '请输入FP数量', trigger: 'blur' },
 | 
			
		||||
          { pattern: /^[1-9]\d*$/, message: '只能输入正整数', trigger: 'blur' }
 | 
			
		||||
        tnNum: [
 | 
			
		||||
          { required: true, message: '请输入TN数量', trigger: 'blur' },
 | 
			
		||||
          { pattern: /^[1-9]\d*$/, message: '只能输入正整数', trigger: 'blur' },
 | 
			
		||||
          { validator: this.validateNegativeSamples, trigger: 'blur' }
 | 
			
		||||
        ],
 | 
			
		||||
        fnNum: [{ required: true, message: '请输入FN数量', trigger: 'blur' },
 | 
			
		||||
          { pattern: /^[1-9]\d*$/, message: '只能输入正整数', trigger: 'blur' }
 | 
			
		||||
        fpNum: [
 | 
			
		||||
          { required: true, message: '请输入FP数量', trigger: 'blur' },
 | 
			
		||||
          { pattern: /^[1-9]\d*$/, message: '只能输入正整数', trigger: 'blur' },
 | 
			
		||||
          { validator: this.validateNegativeSamples, trigger: 'blur' }
 | 
			
		||||
        ]
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
  watch: {
 | 
			
		||||
    isOpen(newVal) {
 | 
			
		||||
      if (newVal && this.evaluateDetailId) {
 | 
			
		||||
        getDetails(this.evaluateDetailId).then(res => {
 | 
			
		||||
          this.form = res.data
 | 
			
		||||
        })
 | 
			
		||||
        getDetails(this.evaluateDetailId).then((res) => {
 | 
			
		||||
          this.form = res.data;
 | 
			
		||||
        });
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
    validatePositiveSamples(rule, value, callback) {
 | 
			
		||||
      const { tpNum, fnNum, justSqmple } = this.form;
 | 
			
		||||
      if (tpNum != null && fnNum != null && justSqmple != null) {
 | 
			
		||||
        if (tpNum + fnNum !== parseInt(justSqmple, 10)) {
 | 
			
		||||
          callback(new Error('TP和FN之和必须等于正样本数'));
 | 
			
		||||
        } else {
 | 
			
		||||
          callback();
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
        callback();
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    validateNegativeSamples(rule, value, callback) {
 | 
			
		||||
      const { tnNum, fpNum, loseSample } = this.form;
 | 
			
		||||
      if (tnNum != null && fpNum != null && loseSample != null) {
 | 
			
		||||
        if (tnNum + fpNum !== parseInt(loseSample, 10)) {
 | 
			
		||||
          callback(new Error('FP和TN之和必须等于负样本数'));
 | 
			
		||||
        } else {
 | 
			
		||||
          callback();
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
        callback();
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    /** 提交按钮 */
 | 
			
		||||
    submitForm() {
 | 
			
		||||
      this.$refs['form'].validate(valid => {
 | 
			
		||||
      this.$refs['form'].validate((valid) => {
 | 
			
		||||
        if (valid) {
 | 
			
		||||
          if (this.form.id != null) {
 | 
			
		||||
            updateDetails(this.form).then(res => {
 | 
			
		||||
              this.$modal.msgSuccess('修改成功')
 | 
			
		||||
              this.isOpen = false
 | 
			
		||||
              this.getList()
 | 
			
		||||
            })
 | 
			
		||||
            updateDetails(this.form).then((res) => {
 | 
			
		||||
              this.$modal.msgSuccess('修改成功');
 | 
			
		||||
              this.isOpen = false;
 | 
			
		||||
              this.getList();
 | 
			
		||||
            });
 | 
			
		||||
          } else {
 | 
			
		||||
            this.form.evaluateId = this.evaluateId
 | 
			
		||||
            console.log(this.form)
 | 
			
		||||
            addDetails(this.form).then(response => {
 | 
			
		||||
              this.$modal.msgSuccess('新增成功')
 | 
			
		||||
              this.isOpen = false
 | 
			
		||||
              this.getList()
 | 
			
		||||
            })
 | 
			
		||||
            this.form.evaluateId = this.evaluateId;
 | 
			
		||||
            addDetails(this.form).then((response) => {
 | 
			
		||||
              this.$modal.msgSuccess('新增成功');
 | 
			
		||||
              this.isOpen = false;
 | 
			
		||||
              this.getList();
 | 
			
		||||
            });
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      })
 | 
			
		||||
      });
 | 
			
		||||
    },
 | 
			
		||||
    cancel() {
 | 
			
		||||
      this.isOpen = false
 | 
			
		||||
      this.resetForm()
 | 
			
		||||
      this.isOpen = false;
 | 
			
		||||
      this.resetForm();
 | 
			
		||||
    },
 | 
			
		||||
    resetForm() {
 | 
			
		||||
      this.form = {}
 | 
			
		||||
      this.form = {};
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
};
 | 
			
		||||
</script>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
<style scoped lang="scss"></style>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -149,7 +149,6 @@ export default {
 | 
			
		|||
  },
 | 
			
		||||
  created() {
 | 
			
		||||
    this.evaluateId = Number(this.$route.params && this.$route.params.evaluateId)
 | 
			
		||||
    console.log(this.evaluateId)
 | 
			
		||||
    this.getList()
 | 
			
		||||
  },
 | 
			
		||||
  methods: {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,7 +26,7 @@
 | 
			
		|||
            />
 | 
			
		||||
          </el-form-item>
 | 
			
		||||
          <el-form-item label="手机号码" prop="phonenumber">
 | 
			
		||||
            <el-input v-model="queryParams.phonenumber" placeholder="请输入手机号码" clearable style="width: 240px"
 | 
			
		||||
            <el-input v-model="queryParams.phonenumber" placeholder="请输入完整手机号码" clearable style="width: 240px"
 | 
			
		||||
                      @keyup.enter.native="handleQuery"
 | 
			
		||||
            />
 | 
			
		||||
          </el-form-item>
 | 
			
		||||
| 
						 | 
				
			
			@ -82,7 +82,9 @@
 | 
			
		|||
          <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
 | 
			
		||||
        </el-row>
 | 
			
		||||
 | 
			
		||||
        <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange" :selectable="checkSelectable" :row-class-name="getRowClassName">
 | 
			
		||||
        <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"
 | 
			
		||||
                  :selectable="checkSelectable" :row-class-name="getRowClassName"
 | 
			
		||||
        >
 | 
			
		||||
          <el-table-column type="selection" width="50" align="center"/>
 | 
			
		||||
          <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns[0].visible"/>
 | 
			
		||||
          <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns[1].visible"
 | 
			
		||||
| 
						 | 
				
			
			@ -112,13 +114,13 @@
 | 
			
		|||
 | 
			
		||||
          <el-table-column label="账号时效" align="center">
 | 
			
		||||
            <template slot-scope="scope">
 | 
			
		||||
              <span>{{scope.row.isPermanent==1?"长期账号":"临时账号" }}</span>
 | 
			
		||||
              <span>{{ scope.row.isPermanent == 1 ? '长期账号' : '临时账号' }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
          </el-table-column>
 | 
			
		||||
 | 
			
		||||
          <el-table-column v-if="config.registersConfig.approvalStatus" label="审批状态" align="center">
 | 
			
		||||
            <template slot-scope="scope">
 | 
			
		||||
              <span>{{scope.row.approvalStatus==0?"未审批":"已审批" }}</span>
 | 
			
		||||
              <span>{{ scope.row.approvalStatus == 0 ? '未审批' : '已审批' }}</span>
 | 
			
		||||
            </template>
 | 
			
		||||
          </el-table-column>
 | 
			
		||||
          <el-table-column label="创建时间" align="center" prop="createTime" v-if="columns[6].visible" width="160">
 | 
			
		||||
| 
						 | 
				
			
			@ -127,7 +129,9 @@
 | 
			
		|||
            </template>
 | 
			
		||||
          </el-table-column>
 | 
			
		||||
          <el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width">
 | 
			
		||||
            <template slot-scope="scope" v-if="!hasSystemOrAuditrRole(scope.row.roles) && scope.row.userId !== 1 &&  scope.row.isBuiltIn !== '0'">
 | 
			
		||||
            <template slot-scope="scope"
 | 
			
		||||
                      v-if="!hasSystemOrAuditrRole(scope.row.roles) && scope.row.userId !== 1 &&  scope.row.isBuiltIn !== '0'"
 | 
			
		||||
            >
 | 
			
		||||
              <el-button size="mini" type="text" icon="el-icon-edit" @click="confirmPassword(scope.row)"
 | 
			
		||||
                         v-hasPermi="['system:user:edit']"
 | 
			
		||||
              >修改
 | 
			
		||||
| 
						 | 
				
			
			@ -220,7 +224,7 @@
 | 
			
		|||
            </el-form-item>
 | 
			
		||||
          </el-col>
 | 
			
		||||
          <el-col :span="12">
 | 
			
		||||
            <el-form-item  label="状态">
 | 
			
		||||
            <el-form-item label="状态">
 | 
			
		||||
              <el-radio-group v-model="form.status">
 | 
			
		||||
                <el-radio v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.value">{{
 | 
			
		||||
                    dict.label
 | 
			
		||||
| 
						 | 
				
			
			@ -330,11 +334,11 @@ import {
 | 
			
		|||
import { getToken } from '@/utils/auth'
 | 
			
		||||
import Treeselect from '@riophae/vue-treeselect'
 | 
			
		||||
import '@riophae/vue-treeselect/dist/vue-treeselect.css'
 | 
			
		||||
import {validateNewPassword } from '@/utils/validate'
 | 
			
		||||
import { validateNewPassword } from '@/utils/validate'
 | 
			
		||||
 | 
			
		||||
export default {
 | 
			
		||||
  name: 'User',
 | 
			
		||||
  dicts: ['sys_normal_disable', 'sys_user_sex', 'sys_login_type','sys_user_permanent'],
 | 
			
		||||
  dicts: ['sys_normal_disable', 'sys_user_sex', 'sys_login_type', 'sys_user_permanent'],
 | 
			
		||||
  components: { Treeselect },
 | 
			
		||||
  data() {
 | 
			
		||||
    return {
 | 
			
		||||
| 
						 | 
				
			
			@ -428,7 +432,7 @@ export default {
 | 
			
		|||
            trigger: ['blur', 'change']
 | 
			
		||||
          }
 | 
			
		||||
        ],
 | 
			
		||||
        deptId:[ { required: true, message: '请选择归属部门', trigger: 'blur' }],
 | 
			
		||||
        deptId: [{ required: true, message: '请选择归属部门', trigger: 'blur' }],
 | 
			
		||||
        phonenumber: [
 | 
			
		||||
          { required: true, message: '手机号不能为空', trigger: 'blur' },
 | 
			
		||||
          {
 | 
			
		||||
| 
						 | 
				
			
			@ -452,12 +456,14 @@ export default {
 | 
			
		|||
  },
 | 
			
		||||
  computed: {
 | 
			
		||||
    config() {
 | 
			
		||||
      return JSON.parse(localStorage.getItem('systemConfig')) || {registersConfig: {
 | 
			
		||||
      return JSON.parse(localStorage.getItem('systemConfig')) || {
 | 
			
		||||
        registersConfig: {
 | 
			
		||||
          phoneRegisters: true,
 | 
			
		||||
          emailRegisters: true,
 | 
			
		||||
          verificationCode:true,
 | 
			
		||||
          approvalStatus:true,
 | 
			
		||||
        }}; // 获取 JSON 对象
 | 
			
		||||
          verificationCode: true,
 | 
			
		||||
          approvalStatus: true
 | 
			
		||||
        }
 | 
			
		||||
      } // 获取 JSON 对象
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  watch: {
 | 
			
		||||
| 
						 | 
				
			
			@ -476,8 +482,8 @@ export default {
 | 
			
		|||
  methods: {
 | 
			
		||||
    /* 手机号码脱敏 */
 | 
			
		||||
    hidePhone(phone) {
 | 
			
		||||
      if (!phone) return '';
 | 
			
		||||
      return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
 | 
			
		||||
      if (!phone) return ''
 | 
			
		||||
      return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2')
 | 
			
		||||
    },
 | 
			
		||||
    /* 表单登录权限自定义校验 */
 | 
			
		||||
    validateLoginType(rule, value, callback) {
 | 
			
		||||
| 
						 | 
				
			
			@ -585,13 +591,13 @@ export default {
 | 
			
		|||
    // 多选框选中数据
 | 
			
		||||
    handleSelectionChange(selection) {
 | 
			
		||||
      // 过滤掉不可选的行(虽然界面上不可选,但为了安全起见还是过滤一次)
 | 
			
		||||
      const validSelection = selection.filter(row => this.checkSelectable(row));
 | 
			
		||||
      const validSelection = selection.filter(row => this.checkSelectable(row))
 | 
			
		||||
 | 
			
		||||
      // 更新选中的roleId数组
 | 
			
		||||
      this.ids = validSelection.map(item => item.userId);
 | 
			
		||||
      this.ids = validSelection.map(item => item.userId)
 | 
			
		||||
      // 更新单选和多选状态
 | 
			
		||||
      this.single = validSelection.length !== 1;
 | 
			
		||||
      this.multiple = !validSelection.length;
 | 
			
		||||
      this.single = validSelection.length !== 1
 | 
			
		||||
      this.multiple = !validSelection.length
 | 
			
		||||
    },
 | 
			
		||||
    // 更多操作触发
 | 
			
		||||
    handleCommand(command, row) {
 | 
			
		||||
| 
						 | 
				
			
			@ -641,7 +647,7 @@ export default {
 | 
			
		|||
        this.form.password = ''
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    confirmPassword(row){
 | 
			
		||||
    confirmPassword(row) {
 | 
			
		||||
      this.$prompt('请输入密码,鉴别用户', '提示', {
 | 
			
		||||
        confirmButtonText: '确定',
 | 
			
		||||
        cancelButtonText: '取消',
 | 
			
		||||
| 
						 | 
				
			
			@ -650,14 +656,14 @@ export default {
 | 
			
		|||
        inputErrorMessage: '用户密码长度必须介于 8 和 16 之间',
 | 
			
		||||
        inputValidator: (value) => {
 | 
			
		||||
          // 调用 validateNewPassword 校验
 | 
			
		||||
          const errorMessage=function(error) {
 | 
			
		||||
          const errorMessage = function(error) {
 | 
			
		||||
            if (error) {
 | 
			
		||||
              return error.message;
 | 
			
		||||
              return error.message
 | 
			
		||||
            } else {
 | 
			
		||||
              console.log('验证通过');
 | 
			
		||||
              console.log('验证通过')
 | 
			
		||||
            }
 | 
			
		||||
          };
 | 
			
		||||
          validateNewPassword(null, value, errorMessage);
 | 
			
		||||
          }
 | 
			
		||||
          validateNewPassword(null, value, errorMessage)
 | 
			
		||||
        }
 | 
			
		||||
      }).then(({ value }) => {
 | 
			
		||||
        confirmPassword(value).then(response => {
 | 
			
		||||
| 
						 | 
				
			
			@ -667,7 +673,7 @@ export default {
 | 
			
		|||
      }).catch(() => {
 | 
			
		||||
      })
 | 
			
		||||
    },
 | 
			
		||||
    confirmResetPwd(row){
 | 
			
		||||
    confirmResetPwd(row) {
 | 
			
		||||
      this.$prompt('请输入密码,鉴别用户', '提示', {
 | 
			
		||||
        confirmButtonText: '确定',
 | 
			
		||||
        cancelButtonText: '取消',
 | 
			
		||||
| 
						 | 
				
			
			@ -676,14 +682,14 @@ export default {
 | 
			
		|||
        inputErrorMessage: '用户密码长度必须介于 8 和 16 之间',
 | 
			
		||||
        inputValidator: (value) => {
 | 
			
		||||
          // 调用 validateNewPassword 校验
 | 
			
		||||
          const errorMessage=function(error) {
 | 
			
		||||
          const errorMessage = function(error) {
 | 
			
		||||
            if (error) {
 | 
			
		||||
              return error.message;
 | 
			
		||||
              return error.message
 | 
			
		||||
            } else {
 | 
			
		||||
              console.log('验证通过');
 | 
			
		||||
              console.log('验证通过')
 | 
			
		||||
            }
 | 
			
		||||
          };
 | 
			
		||||
          validateNewPassword(null, value, errorMessage);
 | 
			
		||||
          }
 | 
			
		||||
          validateNewPassword(null, value, errorMessage)
 | 
			
		||||
        }
 | 
			
		||||
      }).then(({ value }) => {
 | 
			
		||||
        confirmPassword(value).then(response => {
 | 
			
		||||
| 
						 | 
				
			
			@ -703,14 +709,14 @@ export default {
 | 
			
		|||
        inputErrorMessage: '用户密码长度必须介于 8 和 16 之间',
 | 
			
		||||
        inputValidator: (value) => {
 | 
			
		||||
          // 调用 validateNewPassword 校验
 | 
			
		||||
          const errorMessage=function(error) {
 | 
			
		||||
          const errorMessage = function(error) {
 | 
			
		||||
            if (error) {
 | 
			
		||||
              return error.message;
 | 
			
		||||
              return error.message
 | 
			
		||||
            } else {
 | 
			
		||||
              console.log('验证通过');
 | 
			
		||||
              console.log('验证通过')
 | 
			
		||||
            }
 | 
			
		||||
          };
 | 
			
		||||
          validateNewPassword(null, value, errorMessage);
 | 
			
		||||
          }
 | 
			
		||||
          validateNewPassword(null, value, errorMessage)
 | 
			
		||||
        }
 | 
			
		||||
      }).then(({ value }) => {
 | 
			
		||||
        resetUserPwd(row.userId, value).then(response => {
 | 
			
		||||
| 
						 | 
				
			
			@ -791,20 +797,19 @@ export default {
 | 
			
		|||
 | 
			
		||||
    hasSystemOrAuditrRole(roles) {
 | 
			
		||||
      if (!roles || !Array.isArray(roles)) {
 | 
			
		||||
        return false; // 如果 roles 为空或不是数组,返回 false
 | 
			
		||||
        return false // 如果 roles 为空或不是数组,返回 false
 | 
			
		||||
      }
 | 
			
		||||
      return roles.some(role => role.roleKey === 'systemAdmin' || role.roleKey === 'audit'); // 检查是否存在 roleKey 为 admin 的角色
 | 
			
		||||
      return roles.some(role => role.roleKey === 'systemAdmin' || role.roleKey === 'audit') // 检查是否存在 roleKey 为 admin 的角色
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    // 检查行是否可选
 | 
			
		||||
    checkSelectable(row) {
 | 
			
		||||
      return !(row.userId === 1 || row.isBuiltIn === '0' || this.hasSystemOrAuditrRole(row.roles));
 | 
			
		||||
      return !(row.userId === 1 || row.isBuiltIn === '0' || this.hasSystemOrAuditrRole(row.roles))
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    getRowClassName(row) {
 | 
			
		||||
      return !this.checkSelectable(row) ? 'disabled-row' : '';
 | 
			
		||||
    },
 | 
			
		||||
      return !this.checkSelectable(row) ? 'disabled-row' : ''
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue