6ca7123273e87bdda5b4721110ea4e8b.json 21 KB

1
  1. {"remainingRequest":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\front\\item\\zyAdmin\\src\\pages\\setting\\systemOutAccount\\index.vue?vue&type=style&index=0&id=ea93cf98&scoped=true&lang=css","dependencies":[{"path":"D:\\front\\item\\zyAdmin\\src\\pages\\setting\\systemOutAccount\\index.vue","mtime":1761614939060},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\css-loader\\index.js","mtime":1761614929364},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\loaders\\stylePostLoader.js","mtime":1761614937403},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\postcss-loader\\src\\index.js","mtime":1761614935133},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1761614927801},{"path":"D:\\front\\item\\zyAdmin\\node_modules\\vue-loader\\lib\\index.js","mtime":1761614937402}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:DQoucmVzZXQgew0KICBtYXJnaW4tbGVmdDogMTBweDsNCn0NCi5mb3JtLWNvbnRlbnQgew0KICBkaXNwbGF5OiBmbGV4Ow0KICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOw0KfQ0KLmlucHV0LWJ1dHRvbiB7DQogIGRpc3BsYXk6IGZsZXg7DQp9DQouc2V0dGluZy1zdHlsZSA6OnYtZGVlcCAuaXZ1LWZvcm0taXRlbSB7DQogIG1hcmdpbi1ib3R0b206IDE0cHg7DQp9DQouYWxlcnQtaW5mbyB7DQogIG1hcmdpbi1ib3R0b206IDE0cHg7DQp9DQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";AAqiBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/pages/setting/systemOutAccount","sourcesContent":["<template>\r\n <div>\r\n <el-card :bordered=\"false\" shadow=\"never\" class=\"ivu-mt\">\r\n <el-alert type=\"warning\" :closable=\"false\" class=\"alert-info\">\r\n <template slot=\"title\">\r\n 获取访问 Token 的接口:<br />\r\n 请求 URL: /outapi/access_token 请求方式: POST 请求参数: appid和appsecret 返回数据: access_token: 访问令牌\r\n exp_time: 令牌过期时间 auth_info: 授权信息<br />\r\n 使用获取到的 Token 访问对外接口:<br />\r\n 在 HTTP 请求头中添加 Authorization 字段 字段值为 Bearer access_token(注意 Bearer 后有一个空格)\r\n </template>\r\n </el-alert>\r\n <el-form\r\n ref=\"formValidate\"\r\n :model=\"formValidate\"\r\n :label-width=\"labelWidth\"\r\n :label-position=\"labelPosition\"\r\n @submit.native.prevent\r\n >\r\n <el-row>\r\n <el-col v-bind=\"grid\">\r\n <el-button v-auth=\"['setting-system_admin-add']\" type=\"primary\" v-db-click @click=\"add\">添加账号</el-button>\r\n </el-col>\r\n </el-row>\r\n </el-form>\r\n <el-table\r\n :data=\"list\"\r\n class=\"mt14\"\r\n no-userFrom-text=\"暂无数据\"\r\n no-filtered-userFrom-text=\"暂无筛选结果\"\r\n v-loading=\"loading\"\r\n highlight-current-row\r\n >\r\n <el-table-column label=\"编号\" width=\"80\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.id }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"账号\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.appid }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"描述\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.title }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"添加时间\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.add_time }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"最后登录时间\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.last_time }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"最后登录ip\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <span>{{ scope.row.ip }}</span>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"状态\" min-width=\"130\">\r\n <template slot-scope=\"scope\">\r\n <el-switch\r\n class=\"defineSwitch\"\r\n :active-value=\"1\"\r\n :inactive-value=\"0\"\r\n v-model=\"scope.row.status\"\r\n :value=\"scope.row.status\"\r\n @change=\"onchangeIsShow(scope.row)\"\r\n size=\"large\"\r\n active-text=\"开启\"\r\n inactive-text=\"关闭\"\r\n >\r\n </el-switch>\r\n </template>\r\n </el-table-column>\r\n <el-table-column label=\"操作\" fixed=\"right\" width=\"140\">\r\n <template slot-scope=\"scope\">\r\n <a v-db-click @click=\"setUp(scope.row)\">设置</a>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <a v-db-click @click=\"edit(scope.row)\">编辑</a>\r\n <el-divider direction=\"vertical\"></el-divider>\r\n <a v-db-click @click=\"del(scope.row, '删除账号', scope.$index)\">删除</a>\r\n </template>\r\n </el-table-column>\r\n </el-table>\r\n <div class=\"acea-row row-right page\">\r\n <pagination\r\n v-if=\"total\"\r\n :total=\"total\"\r\n :page.sync=\"formValidate.page\"\r\n :limit.sync=\"formValidate.limit\"\r\n @pagination=\"getList\"\r\n />\r\n </div>\r\n </el-card>\r\n <el-dialog\r\n :visible.sync=\"modals\"\r\n :title=\"type == 0 ? '添加账号' : '编辑账号'\"\r\n :close-on-click-modal=\"false\"\r\n :show-close=\"true\"\r\n width=\"720px\"\r\n >\r\n <el-form\r\n ref=\"modalsdate\"\r\n :model=\"modalsdate\"\r\n :rules=\"type == 0 ? ruleValidate : editValidate\"\r\n label-width=\"80px\"\r\n label-position=\"right\"\r\n >\r\n <el-form-item label=\"账号:\" prop=\"appid\">\r\n <div style=\"display: flex\">\r\n <el-input type=\"text\" v-model=\"modalsdate.appid\" :disabled=\"type != 0\"></el-input>\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"密码:\" prop=\"appsecret\">\r\n <div style=\"display: flex\">\r\n <el-input type=\"text\" v-model=\"modalsdate.appsecret\" class=\"input\"></el-input>\r\n <el-button type=\"primary\" v-db-click @click=\"reset\" class=\"reset\">随机</el-button>\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"描述:\" prop=\"title\">\r\n <div style=\"display: flex\">\r\n <el-input type=\"textarea\" v-model=\"modalsdate.title\"></el-input>\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"接口权限:\" prop=\"title\">\r\n <!-- <el-checkbox-group v-model=\"modalsdate.rules\">\r\n <el-checkbox\r\n :disabled=\"[2, 3].includes(item.id)\"\r\n style=\"width: 30%\"\r\n v-for=\"item in intList\"\r\n :key=\"item.id\"\r\n :label=\"item.id\"\r\n >{{ item.name }}</el-checkbox\r\n >\r\n </el-checkbox-group> -->\r\n <el-tree\r\n :data=\"intList\"\r\n :props=\"props\"\r\n multiple\r\n show-checkbox\r\n ref=\"tree\"\r\n node-key=\"id\"\r\n :default-checked-keys=\"selectIds\"\r\n @check-change=\"selectTree\"\r\n ></el-tree>\r\n </el-form-item>\r\n </el-form>\r\n <span slot=\"footer\" class=\"dialog-footer\">\r\n <el-button v-db-click @click=\"cancel\">取 消</el-button>\r\n <el-button type=\"primary\" v-db-click @click=\"ok('modalsdate')\">确 定</el-button>\r\n </span>\r\n </el-dialog>\r\n <el-dialog\r\n :visible.sync=\"settingModals\"\r\n scrollable\r\n title=\"设置推送\"\r\n width=\"1000px\"\r\n :close-on-click-modal=\"false\"\r\n :show-close=\"true\"\r\n >\r\n <el-form\r\n class=\"setting-style\"\r\n ref=\"settingData\"\r\n :model=\"settingData\"\r\n :rules=\"type == 0 ? ruleValidate : editValidate\"\r\n label-width=\"155px\"\r\n label-position=\"right\"\r\n >\r\n <el-form-item label=\"推送开关:\" prop=\"switch\">\r\n <el-switch v-model=\"settingData.push_open\" :active-value=\"1\" :inactive-value=\"0\" />\r\n </el-form-item>\r\n <el-form-item label=\"推送账号:\" prop=\"push_account\">\r\n <div class=\"form-content\">\r\n <el-input type=\"text\" v-model=\"settingData.push_account\" placeholder=\"请输入推送账号\"></el-input>\r\n <span class=\"tips-info\">接受推送方获取token的账号</span>\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"推送密码:\" prop=\"push_password\">\r\n <div class=\"form-content\">\r\n <el-input type=\"text\" v-model=\"settingData.push_password\" placeholder=\"请输入推送密码\"></el-input>\r\n <span class=\"tips-info\">接受推送方获取token的密码</span>\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"获取TOKEN接口:\" prop=\"push_token_url\">\r\n <div class=\"form-content\">\r\n <div class=\"input-button\">\r\n <el-input type=\"text\" v-model=\"settingData.push_token_url\" placeholder=\"请输入获取TOKEN接口\"></el-input>\r\n <el-button class=\"ml10\" type=\"primary\" v-db-click @click=\"textOutUrl(settingData.id)\">测试链接</el-button>\r\n </div>\r\n <span class=\"tips-info\"\r\n >接受推送方获取token的URL地址,POST方法,传入push_account和push_password,返回token和有效时间time(秒)</span\r\n >\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"用户数据修改推送接口:\" prop=\"user_update_push\">\r\n <div class=\"form-content\">\r\n <el-input\r\n type=\"text\"\r\n v-model=\"settingData.user_update_push\"\r\n placeholder=\"请输入用户数据修改推送接口\"\r\n ></el-input>\r\n <span class=\"tips-info\">用户修改积分,余额,经验等将用户信息推送至该地址,POST方法</span>\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"订单创建推送接口:\" prop=\"order_create_push\">\r\n <div class=\"form-content\">\r\n <el-input\r\n type=\"text\"\r\n v-model=\"settingData.order_create_push\"\r\n placeholder=\"请输入订单创建推送接口\"\r\n ></el-input>\r\n <span class=\"tips-info\">订单创建时推送订单信息至该地址,POST方法</span>\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"订单支付推送接口:\" prop=\"order_pay_push\">\r\n <div class=\"form-content\">\r\n <el-input type=\"text\" v-model=\"settingData.order_pay_push\" placeholder=\"请输入订单支付推送接口\"></el-input>\r\n <span class=\"tips-info\">订单完成支付时推送订单已支付信息至该地址,POST方法</span>\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"售后订单创建推送接口:\" prop=\"refund_create_push\">\r\n <div class=\"form-content\">\r\n <el-input\r\n type=\"text\"\r\n v-model=\"settingData.refund_create_push\"\r\n placeholder=\"请输入售后订单创建推送接口\"\r\n ></el-input>\r\n <span class=\"tips-info\">售后订单生成时推送售后单信息至该地址,POST方法</span>\r\n </div>\r\n </el-form-item>\r\n <el-form-item label=\"售后订单取消推送接口:\" prop=\"refund_cancel_push\">\r\n <div class=\"form-content\">\r\n <el-input\r\n type=\"text\"\r\n v-model=\"settingData.refund_cancel_push\"\r\n placeholder=\"请输入售后订单取消推送接口\"\r\n ></el-input>\r\n <span class=\"tips-info\">售后订单取消时推送售后单取消信息至该地址,POST方法</span>\r\n </div>\r\n </el-form-item>\r\n </el-form>\r\n <div slot=\"footer\">\r\n <el-button type=\"primary\" v-db-click @click=\"submit('settingData')\">确定</el-button>\r\n <el-button v-db-click @click=\"settingModals = false\">取消</el-button>\r\n </div>\r\n </el-dialog>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { mapState } from 'vuex';\r\nimport {\r\n accountListApi,\r\n outSaveApi,\r\n outSavesApi,\r\n setShowApi,\r\n outSetUp,\r\n interfaceList,\r\n setUpPush,\r\n textOutUrl,\r\n} from '@/api/systemOutAccount';\r\nexport default {\r\n name: 'systemOut',\r\n data() {\r\n return {\r\n grid: {\r\n xl: 7,\r\n lg: 7,\r\n md: 12,\r\n sm: 24,\r\n xs: 24,\r\n },\r\n total: 0,\r\n loading: false,\r\n roleData: {\r\n status1: '',\r\n },\r\n formValidate: {\r\n roles: '',\r\n status: '',\r\n name: '',\r\n page: 1, // 当前页\r\n limit: 20, // 每页显示条数\r\n },\r\n status: '',\r\n list: [],\r\n intList: [],\r\n FromData: null,\r\n modalTitleSs: '',\r\n ids: Number,\r\n modals: false,\r\n modalsid: '',\r\n type: 0,\r\n modalsdate: {\r\n appid: '',\r\n appsecret: '',\r\n title: '',\r\n rules: [],\r\n },\r\n settingModals: false,\r\n settingData: {\r\n switch: 1,\r\n name: '',\r\n },\r\n ruleValidate: {\r\n appid: [{ required: true, message: '请输入正确的账号 (4到30位之间)', trigger: 'blur', min: 4, max: 30 }],\r\n appsecret: [{ required: true, message: '请输入正确的密码 (6到32位之间)', trigger: 'blur', min: 6, max: 32 }],\r\n title: [{ message: '请输入正确的描述 (不能多于200位数)', trigger: 'blur', max: 200 }],\r\n },\r\n editValidate: {\r\n appsecret: [{ required: false, message: '请输入正确的密码 (6到32位之间)', trigger: 'blur', min: 6, max: 32 }],\r\n },\r\n props: {\r\n label: 'title',\r\n disabled: 'disableCheckbox',\r\n },\r\n selectIds: [],\r\n };\r\n },\r\n computed: {\r\n ...mapState('media', ['isMobile']),\r\n labelWidth() {\r\n return this.isMobile ? undefined : '50px';\r\n },\r\n labelPosition() {\r\n return this.isMobile ? 'top' : 'right';\r\n },\r\n },\r\n created() {\r\n this.getList();\r\n },\r\n methods: {\r\n // 开启状态\r\n onchangeIsShow(row) {\r\n let data = {\r\n id: row.id,\r\n status: row.status,\r\n };\r\n setShowApi(data)\r\n .then(async (res) => {\r\n this.$message.success(res.msg);\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 请求列表\r\n submitFail() {\r\n this.getList();\r\n },\r\n // 列表\r\n getList() {\r\n this.loading = true;\r\n this.formValidate.roles = this.formValidate.roles || '';\r\n accountListApi(this.formValidate)\r\n .then(async (res) => {\r\n this.total = res.data.count;\r\n this.list = res.data.list;\r\n this.loading = false;\r\n })\r\n .catch((res) => {\r\n this.loading = false;\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 添加\r\n add() {\r\n this.modals = true;\r\n this.type = 0;\r\n this.modalsdate = {\r\n appid: '',\r\n appsecret: '',\r\n title: '',\r\n rules: [],\r\n };\r\n this.getIntList();\r\n },\r\n selectTree(e, i) {},\r\n getIntList(type, list) {\r\n let arr = [];\r\n interfaceList().then((res) => {\r\n this.intList = res.data;\r\n if (!type) {\r\n this.intList.map((item) => {\r\n if (item.id === 1) {\r\n item.checked = true;\r\n item.disableCheckbox = true;\r\n arr.push(item.id);\r\n if (item.children.length) {\r\n item.children.map((v) => {\r\n v.checked = true;\r\n v.disableCheckbox = true;\r\n arr.push(v.id);\r\n });\r\n }\r\n }\r\n });\r\n this.$nextTick((e) => {\r\n this.selectIds = arr;\r\n });\r\n } else {\r\n list.map((item) => {\r\n this.intList.map((e) => {\r\n if (e.id === 1) {\r\n e.checked = true;\r\n e.disableCheckbox = true;\r\n if (e.children.length) {\r\n e.children.map((v) => {\r\n v.checked = true;\r\n v.disableCheckbox = true;\r\n });\r\n }\r\n }\r\n listData(e.children || [], item);\r\n });\r\n });\r\n this.selectIds = list;\r\n }\r\n function listData(list, id) {\r\n if (list.length) {\r\n list.map((v) => {\r\n if (v.id == id) {\r\n v.checked = true;\r\n }\r\n if (v.children) {\r\n listData(v.children);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n },\r\n // 编辑\r\n edit(row) {\r\n this.modals = true;\r\n this.modalsdate.appid = row.appid;\r\n this.modalsdate.title = row.title;\r\n this.modalsdate.appsecret = row.apppwd;\r\n this.modalsdate.rules = row.rules.map((e) => {\r\n return Number(e);\r\n });\r\n this.modalsid = row.id;\r\n this.type = 1;\r\n this.getIntList('edit', this.modalsdate.rules);\r\n },\r\n // 删除\r\n del(row, tit, num) {\r\n let delfromData = {\r\n title: tit,\r\n num: num,\r\n url: `setting/system_out_account/${row.id}`,\r\n method: 'DELETE',\r\n ids: '',\r\n };\r\n this.$modalSure(delfromData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n this.list.splice(num, 1);\r\n })\r\n .catch((res) => {\r\n this.$message.error(res.msg);\r\n });\r\n },\r\n // 编辑\r\n setUp(row) {\r\n this.settingModals = true;\r\n this.settingData = row;\r\n },\r\n // 搜索\r\n userSearchs() {\r\n this.formValidate.status = this.status === 'all' ? '' : this.status;\r\n this.formValidate.page = 1;\r\n this.list = [];\r\n this.getList();\r\n },\r\n submit(name) {\r\n setUpPush(this.settingData).then((res) => {\r\n this.$message.success(res.msg);\r\n this.settingModals = false;\r\n this.getList();\r\n });\r\n },\r\n textOutUrl() {\r\n textOutUrl(this.settingData)\r\n .then((res) => {\r\n this.$message.success(res.msg);\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n },\r\n ok(name) {\r\n let fuc = this.modalsid ? outSavesApi : outSaveApi;\r\n this.$refs[name].validate((valid) => {\r\n if (valid) {\r\n this.modalsdate.rules = [];\r\n this.$refs.tree.getCheckedNodes().map((node) => {\r\n this.modalsdate.rules.push(node.id);\r\n });\r\n if (this.modalsid) this.modalsdate.id = this.modalsid;\r\n fuc(this.modalsdate)\r\n .then((res) => {\r\n this.modalsdate = {\r\n appid: '',\r\n appsecret: '',\r\n title: '',\r\n rules: [],\r\n };\r\n (this.modals = false), this.$message.success(res.msg);\r\n this.modalsid = '';\r\n this.getList();\r\n })\r\n .catch((err) => {\r\n this.$message.error(err.msg);\r\n });\r\n } else {\r\n this.$message.warning('请完善数据');\r\n }\r\n });\r\n },\r\n cancel() {\r\n this.modalsid = '';\r\n this.modalsdate = {\r\n appid: '',\r\n appsecret: '',\r\n title: '',\r\n };\r\n this.modals = false;\r\n },\r\n reset() {\r\n let len = 16;\r\n let chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';\r\n let maxPos = chars.length;\r\n let pwd = '';\r\n for (let i = 0; i < len; i++) {\r\n pwd += chars.charAt(Math.floor(Math.random() * maxPos));\r\n }\r\n this.modalsdate.appsecret = pwd;\r\n },\r\n },\r\n};\r\n</script>\r\n\r\n<style scoped>\r\n.reset {\r\n margin-left: 10px;\r\n}\r\n.form-content {\r\n display: flex;\r\n flex-direction: column;\r\n}\r\n.input-button {\r\n display: flex;\r\n}\r\n.setting-style ::v-deep .ivu-form-item {\r\n margin-bottom: 14px;\r\n}\r\n.alert-info {\r\n margin-bottom: 14px;\r\n}\r\n</style>\r\n"]}]}