Commit 1d5170d0 by yuananting

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

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