parent
5bd17eabc3
commit
2516d33e3a
@ -0,0 +1,25 @@ |
||||
<?php |
||||
|
||||
namespace app\admin\model; |
||||
|
||||
use app\common\model\Tester as TesterModel; |
||||
use support\Request; |
||||
use think\db\exception\DbException; |
||||
|
||||
/** |
||||
* @property mixed $id |
||||
*/ |
||||
class Tester extends TesterModel |
||||
{ |
||||
|
||||
public static function list($request): array |
||||
{ |
||||
$params = self::buildWhere(null, $request); |
||||
return self::where($params['where']) |
||||
->order('id', 'desc') |
||||
->paginate([ |
||||
'page' => $params['current_page'], |
||||
'list_rows' => $params['page_size'] |
||||
])->toArray(); |
||||
} |
||||
} |
@ -0,0 +1,14 @@ |
||||
<?php |
||||
|
||||
namespace app\common\model; |
||||
|
||||
/** |
||||
* 体验者管理 |
||||
*/ |
||||
class Tester extends BaseModel |
||||
{ |
||||
static protected array $column = [ |
||||
['key' => 'authorizer_appid', 'name' => 'authorizer_appid'], |
||||
]; |
||||
protected $table = 'tester'; |
||||
} |
@ -0,0 +1,174 @@ |
||||
<template> |
||||
<div> |
||||
<a-card :bordered="false" title="小程序体验者列表"> |
||||
<a-button slot="extra" type="primary" @click="changeDomain"> |
||||
添加 |
||||
</a-button> |
||||
<s-table |
||||
ref="table" |
||||
:columns="columns" |
||||
:data="loadData" |
||||
rowKey="id" |
||||
showPagination="auto" |
||||
size="default" |
||||
> |
||||
<span slot="action" slot-scope="text, record"> |
||||
<template> |
||||
<a-divider type="vertical"/> |
||||
<a-popconfirm title="确定删除该记录吗?" @confirm="handleDel(record.userstr)"> |
||||
<a>删除</a> |
||||
</a-popconfirm> |
||||
</template> |
||||
</span> |
||||
</s-table> |
||||
</a-card> |
||||
<a-modal |
||||
v-model="changeDomainModal" |
||||
title="新增小程序体验者" |
||||
@cancel="modalCancel" |
||||
@ok="modalOk"> |
||||
<a-form :form="form" v-bind="formLayout"> |
||||
<!-- 检查是否有 id 并且大于0,大于0是修改。其他是新增,新增不显示主键ID --> |
||||
<a-form-item label="微信号"> |
||||
<a-input v-decorator="['wechat_id']" placeholder="微信号"/> |
||||
</a-form-item> |
||||
<a-form-item label="备注"> |
||||
<a-input v-decorator="['remark']" placeholder="可填写体验者名字或其他内容"/> |
||||
</a-form-item> |
||||
</a-form> |
||||
</a-modal> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import {getTests, bindTester, unbindTester} from '@/api/miniprogram' |
||||
import {STable} from "@/components"; |
||||
import {getPlatform} from "@/api/platform"; |
||||
|
||||
const columns = [ |
||||
{ |
||||
title: '微信号', |
||||
dataIndex: 'wechat_id' |
||||
}, |
||||
{ |
||||
title: 'userstr', |
||||
dataIndex: 'userstr' |
||||
}, |
||||
{ |
||||
title: 'remark', |
||||
dataIndex: 'remark' |
||||
}, |
||||
{ |
||||
title: '更新时间', |
||||
dataIndex: 'update_time', |
||||
}, |
||||
{ |
||||
title: '操作', |
||||
dataIndex: 'action', |
||||
width: '150px', |
||||
scopedSlots: {customRender: 'action'} |
||||
} |
||||
] |
||||
|
||||
// 表单字段 |
||||
const fields = ['wechat_id'] |
||||
|
||||
export default { |
||||
name: 'tests', |
||||
components: {STable}, |
||||
data() { |
||||
this.formLayout = { |
||||
labelCol: { |
||||
xs: {span: 24}, |
||||
sm: {span: 7} |
||||
}, |
||||
wrapperCol: { |
||||
xs: {span: 24}, |
||||
sm: {span: 13} |
||||
} |
||||
} |
||||
return { |
||||
id: null, |
||||
profile: null, |
||||
columns: columns, |
||||
changeDomainModal: false, |
||||
form: this.$form.createForm(this), |
||||
loadData: parameter => { |
||||
const requestParameters = Object.assign({}, parameter, this.queryParam) |
||||
return getTests({id: this.id}) |
||||
.then(res => { |
||||
return res.data |
||||
}) |
||||
}, |
||||
} |
||||
}, |
||||
computed: { |
||||
domain() { |
||||
if (this.profile) { |
||||
return this.profile['authorizer_info']['MiniProgramInfo']['network'] |
||||
} else { |
||||
return [] |
||||
} |
||||
} |
||||
}, |
||||
methods: { |
||||
changeDomain() { |
||||
this.changeDomainModal = true |
||||
let data = { |
||||
requestdomain: this.domain['RequestDomain'] ? this.domain['RequestDomain'].join(';') : '', |
||||
wsrequestdomain: this.domain['WsRequestDomain'] ? this.domain['WsRequestDomain'].join(';') : '', |
||||
uploaddomain: this.domain['UploadDomain'] ? this.domain['UploadDomain'].join(';') : '', |
||||
downloaddomain: this.domain['DownloadDomain'] ? this.domain['DownloadDomain'].join(';') : '', |
||||
udpdomain: this.domain['UDPDomain'] ? this.domain['UDPDomain'].join(';') : '', |
||||
tcpdomain: this.domain['TCPDomain'] ? this.domain['TCPDomain'].join(';') : '' |
||||
} |
||||
this.form.setFieldsValue(data) |
||||
|
||||
}, |
||||
modalOk() { |
||||
this.form.validateFields((errors, values) => { |
||||
if (!errors) { |
||||
bindTester({id: this.id, ...values}).then(res => { |
||||
this.visible = false |
||||
this.form.resetFields() |
||||
this.$message.success(res['msg']) |
||||
setTimeout(() => { |
||||
location.reload() |
||||
}, 1500) |
||||
}).catch(e => { |
||||
console.log(e) |
||||
}).finally(() => { |
||||
}) |
||||
} |
||||
}) |
||||
}, |
||||
modalCancel() { |
||||
|
||||
}, |
||||
handleDel(userstr) { |
||||
console.log(userstr) |
||||
unbindTester({id:this.id, userstr}).then(res => { |
||||
this.$message.success(res['msg']) |
||||
setTimeout(() => { |
||||
location.reload() |
||||
}, 1500) |
||||
}).catch(e => { |
||||
console.log(e) |
||||
}) |
||||
}, |
||||
}, |
||||
created() { |
||||
const {id} = this.$route.query |
||||
this.id = id |
||||
// 防止表单未注册 |
||||
fields.forEach(v => this.form.getFieldDecorator(v, {})) |
||||
}, |
||||
mounted() { |
||||
|
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style lang="less" scoped> |
||||
|
||||
</style> |
Loading…
Reference in new issue