hldy_vue/src/views/admin/orgapplyinfo/OrgApplyInfoList.vue

377 lines
10 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="p-2">
<!--查询区域-->
<div class="jeecg-basic-table-form-container">
<a-form ref="formRef" @keyup.enter.native="searchQuery" :model="queryParam" :label-col="labelCol"
:wrapper-col="wrapperCol">
<a-row :gutter="24">
<a-col :lg="6">
<a-form-item name="comName">
<template #label><span title="企业名称">企业名称</span></template>
<JInput v-model:value="queryParam.comName" placeholder="请输入企业名称" />
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="orgLeader">
<template #label><span title="机构负责人">机构负责人</span></template>
<JInput v-model:value="queryParam.orgLeader" placeholder="请输入机构负责人" />
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="createTime">
<template #label><span title="申请日期">申请日期</span></template>
<a-range-picker value-format="YYYY-MM-DD" v-model:value="queryParam.createTime"
class="query-group-cust" />
</a-form-item>
</a-col>
<a-col :lg="6">
<a-form-item name="status">
<template #label><span title="审核意见">审核意见</span></template>
<a-select v-model:value="queryParam.status" style="width: 200px" placeholder="请选择审核意见">
<a-select-option value="1">待审核</a-select-option>
<a-select-option value="2">审核通过</a-select-option>
<a-select-option value="3">审核驳回</a-select-option>
</a-select>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<span style="float: left; overflow: hidden" class="table-page-search-submitButtons">
<a-col :lg="6">
<a-button type="primary" preIcon="ant-design:search-outlined" @click="searchQuery">查询</a-button>
<a-button type="primary" preIcon="ant-design:reload-outlined" @click="searchReset"
style="margin-left: 8px">重置</a-button>
</a-col>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!--引用表格-->
<BasicTable @register="registerTable">
<!--插槽:table标题-->
<template #tableTitle>
</template>
<!--操作栏-->
<template #action="{ record }">
<TableAction :actions="getTableAction(record)" />
</template>
<template v-slot:bodyCell="{ column, record, index, text }">
</template>
</BasicTable>
<!-- 表单区域 -->
<OrgApplyInfoModal ref="registerModal" @success="handleSuccess"></OrgApplyInfoModal>
<a-modal v-model:visible="zhcshVisible" title="账号初始化" >
<template #footer> <!-- 自定义底部内容 -->
<a-button @click="handleCshCancel">关闭</a-button>
</template>
<div style="height: 100px;text-align: center;">
<p style="margin-top:50px;">账号初始化成功</p>
<p>{{zhcshMessage}}</p>
</div>
</a-modal>
</div>
</template>
<script lang="ts" name="orgapplyinfo-orgApplyInfo" setup>
import { ref, reactive } from 'vue';
import { BasicTable, useTable, TableAction } from '/@/components/Table';
import { useListPage } from '/@/hooks/system/useListPage';
import { columns, superQuerySchema } from './OrgApplyInfo.data';
import { list, deleteOne, batchDelete, getImportUrl, getExportUrl } from './OrgApplyInfo.api';
import { downloadFile } from '/@/utils/common/renderUtils';
import OrgApplyInfoModal from './components/OrgApplyInfoModal.vue'
import { useUserStore } from '/@/store/modules/user';
import JRangeNumber from "/@/components/Form/src/jeecg/components/JRangeNumber.vue";
import JInput from "/@/components/Form/src/jeecg/components/JInput.vue";
import { cloneDeep } from "lodash-es";
import JDictSelectTag from '/@/components/Form/src/jeecg/components/JDictSelectTag.vue';
import { defHttp } from '/@/utils/http/axios';
import { useMessage } from '/@/hooks/web/useMessage';
const { createMessage } = useMessage();
const formRef = ref();
const queryParam = reactive<any>({});
const toggleSearchStatus = ref<boolean>(false);
const registerModal = ref();
const userStore = useUserStore();
const zhcshVisible = ref<boolean>(false);
const zhcshMessage = ref<string>('');
//注册table数据
const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
tableProps: {
title: '机构加盟申请信息表',
api: list,
columns,
canResize: false,
useSearchForm: false,
actionColumn: {
width: 140,
fixed: 'right',
},
beforeFetch: async (params) => {
let rangerQuery = await setRangeQuery();
return Object.assign(params, rangerQuery);
},
},
exportConfig: {
name: "机构加盟申请信息表",
url: getExportUrl,
params: queryParam,
},
importConfig: {
url: getImportUrl,
success: handleSuccess
},
});
const [registerTable, { reload, collapseAll, updateTableDataRecord, findTableDataRecord, getDataSource }, { rowSelection, selectedRowKeys }] = tableContext;
const labelCol = reactive({
xs: 24,
sm: 4,
xl: 6,
xxl: 5
});
const wrapperCol = reactive({
xs: 24,
sm: 19,
});
// 高级查询配置
const superQueryConfig = reactive(superQuerySchema);
/**
* 高级查询事件
*/
function handleSuperQuery(params) {
Object.keys(params).map((k) => {
queryParam[k] = params[k];
});
searchQuery();
}
/**
* 新增事件
*/
function handleAdd() {
registerModal.value.disableSubmit = false;
registerModal.value.add();
}
/**
* 编辑事件
*/
function handleEdit(record: Recordable) {
registerModal.value.disableSubmit = false;
registerModal.value.edit(record);
}
/**
* 详情
*/
function handleDetail(record: Recordable) {
registerModal.value.disableSubmit = true;
registerModal.value.edit(record);
}
/**
* 删除事件
*/
async function handleDelete(record) {
await deleteOne({ id: record.id }, handleSuccess);
}
/**
* 批量删除事件
*/
async function batchHandleDelete() {
await batchDelete({ ids: selectedRowKeys.value }, handleSuccess);
}
/**
* 成功回调
*/
function handleSuccess() {
(selectedRowKeys.value = []) && reload();
}
/**
* 上传合同
*/
function handleUpContract(record) {
registerModal.value.editContract(record);
}
/**
* 通知运维平台搭建业务平台
*/
function handleBuildPlat(record) {
}
/**
* 账户初始化
* @param record
*/
function handleInitAccount(record) {
var userInfo = {userName: record.tel,realname: record.name,orgCode:record.id}
console.log("🚀 ~ handleInitAccount ~ userInfo:", userInfo)
defHttp.post({ url: '/sys/user/initialization', params: userInfo }).then(res => {
console.log("🚀 ~ handleInitAccount ~ res:", res)
zhcshVisible.value = true;
zhcshMessage.value = res.message;
handleSuccess();
})
}
function handleCshCancel(){
zhcshVisible.value = false;
zhcshMessage.value = '';
}
/**
* 信息推送
* @param record
*/
function handlePushInfo(record) {
console.log("🚀 ~ handlePushInfo ~ record:", record)
var params = {openId:record.openId,id:record.id}
console.log("🚀 ~ handlePushInfo ~ params:", params)
defHttp.get({ url: '/weixinMini/sendOrgAuthInfo', params }).then(res => {
handleSuccess();
})
}
/**
* 操作栏
*/
function getTableAction(record) {
return [
{
label: '详情',
onClick: handleDetail.bind(null, record),
},
{
label: '加盟审核',
onClick: handleEdit.bind(null, record),
auth: 'orgapplyinfo:nu_org_apply_info:edit',
ifShow: record.status == '1'
},
{
label: '上传合同',
onClick: handleUpContract.bind(null, record),
auth: 'orgapplyinfo:nu_org_apply_info:edit',
ifShow: record.buildStatus == '3'
},
// {
// label: '运维平台进行搭建',
// onClick: handleBuildPlat.bind(null, record),
// auth: 'orgapplyinfo:nu_org_apply_info:edit',
// ifShow: () => {
// return record.buildStatus == '3' && !!record.contract
// }
// },
{
label: '账户初始化',
onClick: handleInitAccount.bind(null, record),
auth: 'orgapplyinfo:nu_org_apply_info:edit',
ifShow: record.workOrderStatus == '2' && record.buildStatus == '4'
},
// {
// label: '信息推送',
// onClick: handlePushInfo.bind(null, record),
// auth: 'orgapplyinfo:nu_org_apply_info:edit',
// ifShow: record.buildStatus == '5'n
// },
];
}
/**
* 查询
*/
function searchQuery() {
reload();
}
/**
* 重置
*/
function searchReset() {
formRef.value.resetFields();
selectedRowKeys.value = [];
//刷新数据
reload();
}
let rangeField = 'createTime,'
/**
* 设置范围查询条件
*/
async function setRangeQuery() {
let queryParamClone = cloneDeep(queryParam);
if (rangeField) {
let fieldsValue = rangeField.split(',');
fieldsValue.forEach(item => {
if (queryParamClone[item]) {
let range = queryParamClone[item];
queryParamClone[item + '_begin'] = range[0];
queryParamClone[item + '_end'] = range[1];
delete queryParamClone[item];
} else {
queryParamClone[item + '_begin'] = '';
queryParamClone[item + '_end'] = '';
}
})
}
return queryParamClone;
}
</script>
<style lang="less" scoped>
.jeecg-basic-table-form-container {
padding: 0;
.table-page-search-submitButtons {
display: block;
margin-bottom: 24px;
white-space: nowrap;
}
.query-group-cust {
min-width: 100px !important;
}
.query-group-split-cust {
width: 30px;
display: inline-block;
text-align: center
}
.ant-form-item:not(.ant-form-item-with-help) {
margin-bottom: 16px;
height: 32px;
}
:deep(.ant-picker),
:deep(.ant-input-number) {
width: 100%;
}
}
.jee-hidden-zhcsh {
display: none !important;
}
</style>
<style lang="less">
.ant-drawer-body {
background: url(../resource/img/modalback.png);
}
</style>