Commit 1d5170d0 by yuananting

fix:添加缺省图,修复协同人员创建者不可删除

parent d31edcc2
...@@ -39,6 +39,10 @@ class User { ...@@ -39,6 +39,10 @@ class User {
return window.currentStoreUserInfo.storeUserId || Storage.get(`${PREFIX}_storeUserId`); return window.currentStoreUserInfo.storeUserId || Storage.get(`${PREFIX}_storeUserId`);
} }
getStoreUserName() {
return Storage.get(`${PREFIX}_storeUserName`);
}
getCustomerId() { getCustomerId() {
return Storage.get(`${PREFIX}_customerId`); return Storage.get(`${PREFIX}_customerId`);
} }
......
...@@ -21,22 +21,23 @@ import { randomString } from '@/domains/basic-domain/utils'; ...@@ -21,22 +21,23 @@ import { randomString } from '@/domains/basic-domain/utils';
import TaskCenterService from '@/domains/task-center-domain/TaskCenterService'; import TaskCenterService from '@/domains/task-center-domain/TaskCenterService';
import Bus from '@/core/bus'; import Bus from '@/core/bus';
import $ from 'jquery'; import $ from 'jquery';
import user from '@/common/js/user';
function AddTrainTask() { function AddTrainTask() {
const type = getParameterByName('type'); const type = window.getParameterByName('type');
const taskId = getParameterByName('taskId'); const taskId = window.getParameterByName('taskId');
const taskState = getParameterByName('taskState'); const taskState = window.getParameterByName('taskState');
const defaultCover = 'https://image.xiaomaiketang.com/xm/rEAetaTEh3.png'; const defaultCover = 'https://image.xiaomaiketang.com/xm/rEAetaTEh3.png';
const DEFAULT_BASIC_INFO = { const DEFAULT_BASIC_INFO = {
createId: User.getStoreUserId(),
taskName: '', // 培训任务名称 taskName: '', // 培训任务名称
coverUrl: defaultCover, coverUrl: defaultCover,
coverId: null, coverId: null,
helpStoreUserIds: [ helpStoreUserIds: [
{ {
checkedId: User.getStoreUserId, checkedId: User.getStoreUserId(),
checkedName: User.getStoreUserName()
}, },
], // 指定协同者id ], // 指定协同者id
timeType: 'FOREVER', // 培训时间,默认永久有效 timeType: 'FOREVER', // 培训时间,默认永久有效
...@@ -204,7 +205,7 @@ function AddTrainTask() { ...@@ -204,7 +205,7 @@ function AddTrainTask() {
// 确认保存新建 // 确认保存新建
function submitRemote(introduceId, issue) { function submitRemote(introduceId, issue) {
const { assignList, endTime, helpStoreUserIds, learnType, startTime, taskName, timeType, coverId } = basicInfo; const { createId, assignList, endTime, helpStoreUserIds, learnType, startTime, taskName, timeType, coverId } = basicInfo;
let _scheduleMediaRequests = []; let _scheduleMediaRequests = [];
...@@ -246,7 +247,7 @@ function AddTrainTask() { ...@@ -246,7 +247,7 @@ function AddTrainTask() {
const commonParams = { const commonParams = {
assignList: _assignList, assignList: _assignList,
createId: User.getStoreUserId(), createId,
endTime, endTime,
helpStoreUserIds: _helpStoreUserIds, // 协同者集合 helpStoreUserIds: _helpStoreUserIds, // 协同者集合
issueState: issue, // 是否发布 issueState: issue, // 是否发布
......
...@@ -24,9 +24,9 @@ const { RangePicker } = DatePicker; ...@@ -24,9 +24,9 @@ const { RangePicker } = DatePicker;
const FormItem = Form.Item; const FormItem = Form.Item;
function BasicInfo(props) { function BasicInfo(props) {
const taskState = getParameterByName('taskState'); const taskState = window.getParameterByName('taskState');
const type = getParameterByName('type'); const type = window.getParameterByName('type');
const originTimeType = getParameterByName('timeType'); const originTimeType = window.getParameterByName('timeType');
const { basicInfo, startCheck } = props; const { basicInfo, startCheck } = props;
const { createId, taskName, coverUrl, helpStoreUserIds, timeType, startTime, endTime, learnType, assignList, introduce, loadintroduce } = basicInfo; const { createId, taskName, coverUrl, helpStoreUserIds, timeType, startTime, endTime, learnType, assignList, introduce, loadintroduce } = basicInfo;
......
...@@ -16,6 +16,7 @@ import WWOpenDataCom from '@/components/WWOpenDataCom'; ...@@ -16,6 +16,7 @@ import WWOpenDataCom from '@/components/WWOpenDataCom';
import _ from 'underscore'; import _ from 'underscore';
import './ChooseAssignorModal.less'; import './ChooseAssignorModal.less';
import $ from 'jquery'; import $ from 'jquery';
import LottieIcon from '@/components/LottieIcon';
const { TabPane } = Tabs; const { TabPane } = Tabs;
const { DirectoryTree } = Tree; const { DirectoryTree } = Tree;
...@@ -412,36 +413,43 @@ function ChooseAssignorModal(props) { ...@@ -412,36 +413,43 @@ function ChooseAssignorModal(props) {
<TabPane key='customGroupTab' tab='自定义分组'></TabPane> <TabPane key='customGroupTab' tab='自定义分组'></TabPane>
</Tabs> </Tabs>
<div className='tree-con'> <div className='tree-con'>
<DirectoryTree <Choose>
defaultExpandAll <When condition={structureData.length > 0}>
checkable <DirectoryTree
checkStrictly defaultExpandAll
showIcon={false} checkable
treeData={structureData} checkStrictly
checkedKeys={checkedAssignorKeys} showIcon={false}
onCheck={(key, e) => onCheckAssignor(key, e)} treeData={structureData}
titleRender={(nodeData) => { checkedKeys={checkedAssignorKeys}
return ( onCheck={(key, e) => onCheckAssignor(key, e)}
<div className='node-title-div'> titleRender={(nodeData) => {
{nodeData.checkedType === 'CUSTOMER' ? ( return (
<div> <div className='node-title-div'>
<span className='icon iconfont title-icon'>&#xe603;</span> {nodeData.checkedType === 'CUSTOMER' ? (
<span className='title-name'> <div>
<WWOpenDataCom type='userName' openid={nodeData.checkedName} /> <span className='icon iconfont title-icon'>&#xe603;</span>
</span> <span className='title-name'>
</div> <WWOpenDataCom type='userName' openid={nodeData.checkedName} />
) : ( </span>
<div> </div>
<span className='icon iconfont title-icon'>&#xe604;</span> ) : (
<span className='title-name'> <div>
<WWOpenDataCom type='departmentName' openid={nodeData.checkedName} /> <span className='icon iconfont title-icon'>&#xe604;</span>
</span> <span className='title-name'>
<WWOpenDataCom type='departmentName' openid={nodeData.checkedName} />
</span>
</div>
)}
</div> </div>
)} );
</div> }}
); />
}} </When>
/> <Otherwise>
<LottieIcon title='搜索无结果' type='search' size={150} />
</Otherwise>
</Choose>
</div> </div>
</div> </div>
</div> </div>
...@@ -453,36 +461,44 @@ function ChooseAssignorModal(props) { ...@@ -453,36 +461,44 @@ function ChooseAssignorModal(props) {
</span> </span>
</div> </div>
<div className='data-body'> <div className='data-body'>
{checkedAssignorList.map((item, index) => { <Choose>
return ( <When condition={checkedAssignorList.length > 0}>
<div className='selected-item'> {checkedAssignorList.map((item, index) => {
<span className='item-title'> return (
{item.checkedType === 'CUSTOMER' ? ( <div className='selected-item'>
<div> <span className='item-title'>
<span className='icon iconfont title-icon'>&#xe603;</span> {item.checkedType === 'CUSTOMER' ? (
<Tooltip title={<WWOpenDataCom type='userName' openid={item.checkedName} />}> <div>
<span className='title-name'> <span className='icon iconfont title-icon'>&#xe603;</span>
<WWOpenDataCom type='userName' openid={item.checkedName} /> <Tooltip title={<WWOpenDataCom type='userName' openid={item.checkedName} />}>
</span> <span className='title-name'>
</Tooltip> <WWOpenDataCom type='userName' openid={item.checkedName} />
</div> </span>
) : ( </Tooltip>
<div> </div>
<span className='icon iconfont title-icon'>&#xe604;</span> ) : (
<Tooltip title={<WWOpenDataCom type='departmentName' openid={item.checkedName} />}> <div>
<span className='title-name'> <span className='icon iconfont title-icon'>&#xe604;</span>
<WWOpenDataCom type='departmentName' openid={item.checkedName} /> <Tooltip title={<WWOpenDataCom type='departmentName' openid={item.checkedName} />}>
</span> <span className='title-name'>
</Tooltip> <WWOpenDataCom type='departmentName' openid={item.checkedName} />
</div> </span>
)} </Tooltip>
</span> </div>
<span className='icon iconfont clear-icon' onClick={() => removeCheckedAssignor(item)}> )}
&#xe717; </span>
</span> <span className='icon iconfont clear-icon' onClick={() => removeCheckedAssignor(item)}>
</div> &#xe717;
); </span>
})} </div>
);
})}
</When>
<Otherwise>
<LottieIcon title='暂无数据' type='college' size={150} />
</Otherwise>
</Choose>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -78,6 +78,12 @@ ...@@ -78,6 +78,12 @@
font-size: 14px !important; font-size: 14px !important;
} }
} }
.lottie-icon {
margin-top: 64px;
.lottie-icon__title {
color: #666666;
}
}
.tree-con { .tree-con {
overflow-y: scroll; overflow-y: scroll;
overflow-x: hidden; overflow-x: hidden;
...@@ -137,6 +143,12 @@ ...@@ -137,6 +143,12 @@
overflow-y: scroll; overflow-y: scroll;
overflow-x: hidden; overflow-x: hidden;
max-height: 370px; max-height: 370px;
.lottie-icon {
margin-top: 76px;
.lottie-icon__title {
color: #666666;
}
}
.selected-item { .selected-item {
padding: 12px 12px 12px 16px; padding: 12px 12px 12px 16px;
display: flex; display: flex;
......
...@@ -10,14 +10,10 @@ ...@@ -10,14 +10,10 @@
import React, { useState, useEffect } from 'react'; import React, { useState, useEffect } from 'react';
import { Modal, Input, Tooltip, List, Checkbox } from 'antd'; import { Modal, Input, Tooltip, List, Checkbox } from 'antd';
import { XMTable } from '@/components';
import college from '@/common/lottie/college.json';
import Service from '@/common/js/service';
import User from '@/common/js/user';
import StoreService from '@/domains/store-domain/storeService'; import StoreService from '@/domains/store-domain/storeService';
import search from '@/common/lottie/search';
import './ChooseCollaboratorModal.less'; import './ChooseCollaboratorModal.less';
import WWOpenDataCom from '@/components/WWOpenDataCom'; import WWOpenDataCom from '@/components/WWOpenDataCom';
import LottieIcon from '@/components/LottieIcon';
import _ from 'underscore'; import _ from 'underscore';
...@@ -186,36 +182,43 @@ function ChooseCollaboratorModal(props) { ...@@ -186,36 +182,43 @@ function ChooseCollaboratorModal(props) {
enterButton={<span className='icon iconfont'>&#xe832;</span>} enterButton={<span className='icon iconfont'>&#xe832;</span>}
/> />
<div className='data-body'> <div className='data-body'>
<List <Choose>
header={ <When condition={employeeList.length > 0}>
<Checkbox checked={allChecked} onChange={handleCheckedAll}> <List
全部 header={
</Checkbox> <Checkbox checked={allChecked} onChange={handleCheckedAll}>
} 全部
dataSource={employeeList} </Checkbox>
renderItem={(item, index) => ( }
<List.Item> dataSource={employeeList}
<Checkbox renderItem={(item, index) => (
checked={item.checked} <List.Item>
value={item} <Checkbox
key={item.checkedId} checked={item.checked}
disabled={item.checkedId === props.createId} value={item}
onChange={handleCheckedCollaborator}> key={item.checkedId}
<div className='employee-item'> disabled={item.checkedId === props.createId}
<span className='item-title'> onChange={handleCheckedCollaborator}>
<span className='icon iconfont title-icon'>&#xe84a;</span> <div className='employee-item'>
<Tooltip title={<WWOpenDataCom type='userName' openid={item.checkedName} />}> <span className='item-title'>
<span className='title-name'> <span className='icon iconfont title-icon'>&#xe84a;</span>
<WWOpenDataCom type='userName' openid={item.checkedName} /> <Tooltip title={<WWOpenDataCom type='userName' openid={item.checkedName} />}>
<span className='title-name'>
<WWOpenDataCom type='userName' openid={item.checkedName} />
</span>
</Tooltip>
</span> </span>
</Tooltip> <span className='dep-info'>{renderDepItem(item)}</span>
</span> </div>
<span className='dep-info'>{renderDepItem(item)}</span> </Checkbox>
</div> </List.Item>
</Checkbox> )}
</List.Item> />
)} </When>
/> <Otherwise>
<LottieIcon title='搜索无结果' type='search' size={150} />
</Otherwise>
</Choose>
</div> </div>
</div> </div>
<div className='right-list'> <div className='right-list'>
......
...@@ -12,6 +12,12 @@ ...@@ -12,6 +12,12 @@
overflow-x: hidden; overflow-x: hidden;
max-height: 370px; max-height: 370px;
padding-right: 16px; padding-right: 16px;
.lottie-icon {
margin-top: 76px;
.lottie-icon__title {
color: #666666;
}
}
.ant-list { .ant-list {
.ant-list-item:hover { .ant-list-item:hover {
background-color: #f3f6fa; background-color: #f3f6fa;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment