feat: 1 新增用户审批状态接口 2 新增审批用户查询条件

This commit is contained in:
ganzizi 2023-09-08 19:14:31 +08:00
parent 0e9c1c19ce
commit 39a0d001ef
5 changed files with 46 additions and 14 deletions

View File

@ -360,6 +360,7 @@ class ApproveController extends AbstractController
{
$user = User::auth();
$data['userid'] = (string)$user->userid;
$data['username'] = Request::input('username');
$data['procName'] = Request::input('proc_def_name');
$data['sort'] = Request::input('sort');
$data['pageIndex'] = intval(Request::input('page'));
@ -402,6 +403,7 @@ class ApproveController extends AbstractController
{
$user = User::auth();
$data['userid'] = (string)$user->userid;
$data['username'] = Request::input('username');
$data['procName'] = Request::input('proc_def_name'); //分类
$data['state'] = intval(Request::input('state')); //状态
$data['pageIndex'] = intval(Request::input('page'));
@ -561,6 +563,7 @@ class ApproveController extends AbstractController
{
$user = User::auth();
$data['userid'] = (string)$user->userid;
$data['username'] = Request::input('username');
$data['procName'] = Request::input('proc_def_name');
$data['sort'] = Request::input('sort');
$data['pageIndex'] = intval(Request::input('page'));
@ -641,6 +644,7 @@ class ApproveController extends AbstractController
{
$user = User::auth();
$data['userid'] = (string)$user->userid;
$data['username'] = Request::input('username');
$data['procName'] = Request::input('proc_def_name');
$data['sort'] = Request::input('sort');
$data['pageIndex'] = intval(Request::input('page'));

View File

@ -633,6 +633,12 @@ class UsersController extends AbstractController
$basic = UserDelete::userid2basic($id);
}
if ($basic) {
// 用户审批状态
$approval_status = Base::getUserApprovalStatus($basic->userid);
if ($approval_status != ''){
$basic->approval_status = $approval_status;
}
//
$retArray[] = $basic;
}
}

View File

@ -2936,4 +2936,22 @@ class Base
}
return $newArray;
}
/**
* 获取用户审批状态
*
* @param [type] $userid
* @return string
*/
public static function getUserApprovalStatus($userid) {
$data['userid'] = $userid;
$url = env('FLOW_URL') ?: 'http://approve';
$ret = Ihttp::ihttp_get($url.'/api/v1/workflow/process/getUserApprovalStatus?'.http_build_query($data));
$procdef = json_decode($ret['ret'] == 1 ? $ret['data'] : '{}', true);
if (isset($procdef['status']) && $procdef['status'] == 200) {
return isset($procdef['data']["proc_def_name"]) ? $procdef['data']["proc_def_name"] : '';
} else {
return '';
}
}
}

View File

@ -36,9 +36,8 @@
<Select v-model="approvalType" @on-change="tabsClick(false,0)">
<Option v-for="item in approvalList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
<div v-if="this.loadIng" class="load">
<Loading/>
</div>
<Input v-model="approvalName" :placeholder="$L('请输入用户名')" ></Input>
<Button type="primary" :loading="loadIng" icon="ios-search" @click="tabsClick(false,0)">{{ $L('搜索') }}</Button>
</div>
</div>
<div>
@ -66,9 +65,8 @@
<Select v-model="approvalType" @on-change="tabsClick(false,0)">
<Option v-for="item in approvalList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
<div v-if="this.loadIng" class="load">
<Loading/>
</div>
<Input v-model="approvalName" :placeholder="$L('请输入用户名')"></Input>
<Button type="primary" :loading="loadIng" icon="ios-search" @click="tabsClick(false,0)">{{ $L('搜索') }}</Button>
</div>
</div>
<div v-if="doneList.length==0" class="noData">{{$L('暂无数据')}}</div>
@ -95,9 +93,8 @@
<Select v-model="approvalType" @on-change="tabsClick(false,0)">
<Option v-for="item in approvalList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
<div v-if="this.loadIng" class="load">
<Loading/>
</div>
<Input v-model="approvalName" :placeholder="$L('请输入用户名')"></Input>
<Button type="primary" :loading="loadIng" icon="ios-search" @click="tabsClick(false,0)">{{ $L('搜索') }}</Button>
</div>
</div>
</div>
@ -127,9 +124,8 @@
<Select v-model="searchState" @on-change="tabsClick(false,0)">
<Option v-for="item in searchStateList" :value="item.value" :key="item.value">{{ item.label }}</Option>
</Select>
<div v-if="this.loadIng" class="load">
<Loading/>
</div>
<Input v-model="approvalName" :placeholder="$L('请输入用户名')"></Input>
<Button type="primary" :loading="loadIng" icon="ios-search" @click="tabsClick(false,0)">{{ $L('搜索') }}</Button>
</div>
</div>
<div v-if="initiatedList.length==0" class="noData">{{$L('暂无数据')}}</div>
@ -267,6 +263,7 @@ export default {
tabsValue: "",
//
approvalType: "all",
approvalName: "",
approvalList: [
{ value: "all", label: this.$L("全部审批") },
],
@ -440,6 +437,7 @@ export default {
this.tabsValue = val || this.tabsValue
if(val){
this.approvalType = this.searchState = "all"
this.approvalName = ""
}
//
this.detailsShow = false;
@ -531,6 +529,7 @@ export default {
page: type == 'scroll' ? this.unreadPage : 1,
page_size: type == 'scroll' ? this.pageSize : this.unreadPage * this.pageSize,
proc_def_name: this.approvalType == 'all' ? '' : this.approvalType,
username: this.approvalName,
}
}).then(({data}) => {
let activeId = 0;
@ -572,6 +571,7 @@ export default {
page: type == 'scroll' ? this.donePage : 1,
page_size: type == 'scroll' ? this.pageSize : this.donePage * this.pageSize,
proc_def_name: this.approvalType == 'all' ? '' : this.approvalType,
username: this.approvalName,
}
}).then(({data}) => {
let activeId = 0;
@ -613,6 +613,7 @@ export default {
page: type == 'scroll' ? this.notifyPage : 1,
page_size: type == 'scroll' ? this.pageSize : this.notifyPage * this.pageSize,
proc_def_name: this.approvalType == 'all' ? '' : this.approvalType,
username: this.approvalName,
}
}).then(({data}) => {
let activeId = 0;
@ -654,7 +655,8 @@ export default {
page: type == 'scroll' ? this.initiatedPage : 1,
page_size: type == 'scroll' ? this.pageSize : this.initiatedPage * this.pageSize,
proc_def_name: this.approvalType == 'all' ? '' : this.approvalType,
state: this.searchState == 'all' ? '' : this.searchState
state: this.searchState == 'all' ? '' : this.searchState,
username: this.approvalName,
}
}).then(({data}) => {
let activeId = 0;

View File

@ -44,6 +44,7 @@
<h2>{{dialogData.name}}</h2>
<em v-if="peopleNum > 0" @click="onDialogMenu('groupInfo')">({{peopleNum}})</em>
<Tag v-if="dialogData.bot" class="after" :fade="false">{{$L('机器人')}}</Tag>
<Tag v-if="cacheUserBasic.find(item => item.userid === dialogData.dialog_user.userid)?.approval_status" class="after" color="red" :fade="false">{{$L(cacheUserBasic.find(item => item.userid === dialogData.dialog_user.userid)?.approval_status)}}</Tag>
<Tag v-if="dialogData.group_type=='all'" class="after pointer" :fade="false" @on-click="onDialogMenu('groupInfo')">{{$L('全员')}}</Tag>
<Tag v-else-if="dialogData.group_type=='department'" class="after pointer" :fade="false" @on-click="onDialogMenu('groupInfo')">{{$L('部门')}}</Tag>
<div v-if="msgLoadIng > 0" class="load"><Loading/></div>
@ -661,6 +662,7 @@ export default {
mounted() {
this.msgSubscribe = Store.subscribe('dialogMsgChange', this.onMsgChange);
console.log('dialogMsgChange', this.cacheUserBasic)
},
beforeDestroy() {
@ -1443,7 +1445,7 @@ export default {
onSearchMsgId() {
if (this.dialogSearchMsgId > 0 && this.openId === this.dialogId) {
this.onPositionId(this.dialogSearchMsgId)
this.$store.state.dialogSearchMsgId = 0
this.$store.state.dialogSearchMsgId = 0
}
},