| New file |
| | |
| | | <template> |
| | | <el-dialog |
| | | :title="!id ? '新增' : '修改'" |
| | | :close-on-click-modal="false" |
| | | @close="handClose" |
| | | width="700px" |
| | | :visible.sync="visible" |
| | | > |
| | | <el-form |
| | | :model="dataForm" |
| | | :rules="dataRule" |
| | | ref="dataForm" |
| | | @keyup.enter.native="dataFormSubmit()" |
| | | label-width="90px" |
| | | > |
| | | <el-form-item v-if="id" label="用户名" prop="clientName"> |
| | | <el-input |
| | | v-model="dataForm.clientName" |
| | | disabled |
| | | placeholder="用户名" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="客户值类型"> |
| | | <el-select |
| | | v-model="dataForm.clientType" |
| | | @change="changeVal1()" |
| | | class="inpspase" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in optionsThree" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item |
| | | label="UID" |
| | | v-if="dataForm.clientType == 'userCode'" |
| | | prop="userCode" |
| | | > |
| | | <el-input |
| | | v-model="dataForm.userCode" |
| | | clearable |
| | | placeholder="UID" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="IP" v-if="dataForm.clientType == 'ip'" prop="ip"> |
| | | <el-input v-model="dataForm.ip" clearable placeholder="ip"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="风控类型"> |
| | | <el-select |
| | | v-model="dataForm.type" |
| | | @change="changeVal()" |
| | | class="inpspase" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="状态"> |
| | | <el-select |
| | | v-model="dataForm.status" |
| | | @change="changeVal()" |
| | | class="inpspase" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in optionsTwo" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="开始时间" prop="beginTime"> |
| | | <el-date-picker |
| | | class="inpspase" |
| | | v-model="dataForm.beginTime" |
| | | type="datetime" |
| | | clearable |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="选择日期时间" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="结束时间" prop="endTime"> |
| | | <el-date-picker |
| | | class="inpspase" |
| | | v-model="dataForm.endTime" |
| | | type="datetime" |
| | | clearable |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | placeholder="选择日期时间" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <!-- <el-form-item v-if="id" label="提现权限" label-width="100px"> |
| | | <el-select v-model="optionsThree.value3" @change="changeVal()" class="inpspase" |
| | | placeholder="请选择"> |
| | | <el-option v-for="item in optionsThree" |
| | | :key="item.value3" |
| | | :label="item.label3" |
| | | :value="item.value3"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div v-if="id" style="margin:20px 0;color: rgb(124, 126, 124);padding-left: 100px">演示账号该设置不生效,默认无提现权限</div> |
| | | <el-form-item label="是否业务锁定" label-width="100px"> |
| | | <el-select v-model="optionsTwo.value2" @change="changeVal()" class="inpspase" |
| | | placeholder="请选择"> |
| | | <el-option v-for="item in optionsTwo" |
| | | :key="item.value2" |
| | | :label="item.label2" |
| | | :value="item.value2"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="备注" label-width="100px" prop="remarks"> |
| | | <el-input type="textarea" :autosize="{ minRows: 5, maxRows: 8}" show-word-limit v-model="dataForm.remarks"></el-input> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="visible = false">取消</el-button> |
| | | <el-button type="primary" @click="dataFormSubmit()">确定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </template> |
| | | |
| | | <script> |
| | | import { isEmail, isMobile } from "@/utils/validate"; |
| | | import { Debounce } from "@/utils/debounce"; |
| | | import { encrypt } from "@/utils/crypto"; |
| | | export default { |
| | | data() { |
| | | var validatePassword = (rule, value, callback) => { |
| | | if (!this.dataForm.id && !/\S/.test(value)) { |
| | | callback(new Error("密码不能为空")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | var validateEmail = (rule, value, callback) => { |
| | | if (!isEmail(value)) { |
| | | callback(new Error("邮箱格式错误")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | var validateMobile = (rule, value, callback) => { |
| | | if (!isMobile(value)) { |
| | | callback(new Error("手机号格式错误")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | return { |
| | | visible: false, |
| | | roleList: {}, |
| | | id: "", |
| | | dataForm: { |
| | | userCode: "", |
| | | clientName: "", |
| | | ip: "", |
| | | type: "", |
| | | beginTime: "", |
| | | endTime: "", |
| | | clientType: "", |
| | | status: "", |
| | | }, |
| | | options: [ |
| | | { |
| | | label: "断网", |
| | | value: "badnetwork", |
| | | }, |
| | | { |
| | | label: "黑名单", |
| | | value: "black", |
| | | }, |
| | | ], |
| | | optionsTwo: [ |
| | | { |
| | | label: "启用", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "未启用", |
| | | value: 0, |
| | | }, |
| | | ], |
| | | optionsThree: [ |
| | | { |
| | | label: "用户UID", |
| | | value: "userCode", |
| | | }, |
| | | { |
| | | label: "ip地址", |
| | | value: "ip", |
| | | }, |
| | | ], |
| | | dataRule: { |
| | | username: [ |
| | | { required: true, message: "用户名不能为空", trigger: "blur" }, |
| | | // { pattern: /\s\S+|S+\s|\S/, message: '请输入正确的用户名', trigger: 'blur' } |
| | | ], |
| | | password: [ |
| | | { required: true, message: "密码不能为空", trigger: "blur" }, |
| | | ], |
| | | userCode: [{ required: true, message: "UID不能为空", trigger: "blur" }], |
| | | ip: [ |
| | | { required: true, message: "ip不能为空", trigger: "blur" }, |
| | | { validator: this.validateIPAddress, trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | init(row) { |
| | | if (row) { |
| | | this.dataForm = {...row}; |
| | | if (row.clientType === "userCode") { |
| | | this.$set(this.dataForm, "userCode", row.clientKey); |
| | | this.$set(this.dataForm, "ip", ""); |
| | | } else { |
| | | this.$set(this.dataForm, "ip", row.clientKey); |
| | | this.$set(this.dataForm, "userCode", ""); |
| | | } |
| | | this.id = row.id; |
| | | } else { |
| | | this.dataForm.type = this.options[0].value; |
| | | this.dataForm.status = this.optionsTwo[0].value; |
| | | this.dataForm.clientType = this.optionsThree[0].value; |
| | | } |
| | | |
| | | this.visible = true; |
| | | this.$nextTick(() => { |
| | | //this.$refs.dataForm.resetFields() |
| | | }); |
| | | }, |
| | | validateIPAddress(rule, value, callback) { |
| | | const parts = value.split('.'); |
| | | // console.log(parts) |
| | | // console.log(parts.length) |
| | | if (parts.length !== 4) { |
| | | // console.log(parts) |
| | | // console.log(parts.length) |
| | | return callback(new Error('请输入正确的 IP 地址')); |
| | | } |
| | | |
| | | // for (let i = 0; i < parts.length; i++) { |
| | | // if (parts[i] !== '*' || !(/^\d+$/.test(parts[i]))) { |
| | | // console.log(2) |
| | | // console.log(parts) |
| | | // return callback(new Error('请输入正确的 IP 地址')); |
| | | // } |
| | | // } |
| | | |
| | | callback(); |
| | | }, |
| | | changeVal(val) { |
| | | this.$forceUpdate(); |
| | | }, |
| | | changeVal1(val) { |
| | | this.$forceUpdate(); |
| | | this.$refs["dataForm"].clearValidate(); // 清除表单验证 |
| | | this.dataForm.userCode = ""; |
| | | this.dataForm.ip = ""; |
| | | }, |
| | | handClose() { |
| | | this.id = ""; |
| | | this.$data.dataForm = JSON.parse( |
| | | JSON.stringify(this.$options.data().dataForm) |
| | | ); |
| | | this.$nextTick(() => { |
| | | this.$refs["dataForm"].clearValidate(); // 清除表单验证 |
| | | }); |
| | | }, |
| | | // 表单提交 |
| | | dataFormSubmit: Debounce(function () { |
| | | if (this.dataForm.userCode == "" && this.dataForm.ip == "") { |
| | | this.$message({ |
| | | message: "UID和IP必须填一项", |
| | | type: "error", |
| | | duration: 1500, |
| | | onClose: () => { |
| | | }, |
| | | }); |
| | | } else { |
| | | this.$refs["dataForm"].validate((valid) => { |
| | | if (valid) { |
| | | this.$http({ |
| | | url: this.$http.adornUrl(`/riskclient/save`), //修改 |
| | | method: "post", |
| | | data: this.$http.adornData({ |
| | | userCode: this.dataForm.userCode, |
| | | ip: this.dataForm.ip, |
| | | type: this.dataForm.type, |
| | | status: this.dataForm.status, |
| | | beginTime: this.dataForm.beginTime, |
| | | endTime: this.dataForm.endTime, |
| | | }), |
| | | }).then(({ data }) => { |
| | | if (data.code == 0) { |
| | | this.$message({ |
| | | message: "操作成功", |
| | | type: "success", |
| | | duration: 1500, |
| | | onClose: () => { |
| | | this.visible = false; |
| | | this.$emit("refreshDataList"); |
| | | }, |
| | | }); |
| | | } else { |
| | | this.$message({ |
| | | message: data.msg, |
| | | type: "error", |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | }), |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .inpspase { |
| | | width: 570px; |
| | | } |
| | | </style> |