fixes #34 「动态指令」多行指令会被当作一行执行
fixes #32 会话无法维持,1分钟左右自动断开 fixes #31 更新"资产"会清空"标签" fixes #13 建议添加用户权限功能、隐藏授权账户信息
This commit is contained in:
@ -247,6 +247,14 @@ class Asset extends Component {
|
||||
tags = r2['data'];
|
||||
}
|
||||
|
||||
if (asset['tags'] && typeof (asset['tags']) === 'string') {
|
||||
if (asset['tags'] === '-') {
|
||||
asset['tags'] = [];
|
||||
} else {
|
||||
asset['tags'] = asset['tags'].split(',');
|
||||
}
|
||||
}
|
||||
|
||||
this.setState({
|
||||
modalTitle: title,
|
||||
modalVisible: true,
|
||||
@ -269,8 +277,9 @@ class Asset extends Component {
|
||||
modalConfirmLoading: true
|
||||
});
|
||||
|
||||
if (formData['tagArr']) {
|
||||
formData.tags = formData['tagArr'].join(',');
|
||||
console.log(formData)
|
||||
if (formData['tags']) {
|
||||
formData.tags = formData['tags'].join(',');
|
||||
}
|
||||
|
||||
if (formData.id) {
|
||||
@ -368,7 +377,7 @@ class Asset extends Component {
|
||||
|
||||
handleShowSharer = async (record) => {
|
||||
let r1 = this.handleSearchByNickname('');
|
||||
let r2 = request.get(`/resources/${record['id']}/assign`);
|
||||
let r2 = request.get(`/resource-sharers/sharers?resourceId=${record['id']}`);
|
||||
|
||||
await r1;
|
||||
let result = await r2;
|
||||
@ -380,10 +389,20 @@ class Asset extends Component {
|
||||
selectedSharers = result['data'];
|
||||
}
|
||||
|
||||
let users = this.state.users;
|
||||
users = users.map(item => {
|
||||
let disabled = false;
|
||||
if (record['owner'] === item['id']) {
|
||||
disabled = true;
|
||||
}
|
||||
return {...item, 'disabled': disabled}
|
||||
});
|
||||
|
||||
this.setState({
|
||||
selectedSharers: selectedSharers,
|
||||
selected: record,
|
||||
changeSharerModalVisible: true
|
||||
changeSharerModalVisible: true,
|
||||
users: users
|
||||
})
|
||||
}
|
||||
|
||||
@ -687,9 +706,8 @@ class Asset extends Component {
|
||||
: null
|
||||
}
|
||||
|
||||
|
||||
<Modal title={<text>更换资源「<strong style={{color: '#1890ff'}}>{this.state.selected['name']}</strong>」的所有者
|
||||
</text>}
|
||||
<Modal title={<Text>更换资源「<strong style={{color: '#1890ff'}}>{this.state.selected['name']}</strong>」的所有者
|
||||
</Text>}
|
||||
visible={this.state.changeOwnerModalVisible}
|
||||
confirmLoading={this.state.changeOwnerConfirmLoading}
|
||||
onOk={() => {
|
||||
@ -746,54 +764,64 @@ class Asset extends Component {
|
||||
</Form>
|
||||
</Modal>
|
||||
|
||||
<Modal title={<text>更新资源「<strong style={{color: '#1890ff'}}>{this.state.selected['name']}</strong>」的授权人
|
||||
</text>}
|
||||
visible={this.state.changeSharerModalVisible}
|
||||
confirmLoading={this.state.changeSharerConfirmLoading}
|
||||
onOk={async () => {
|
||||
this.setState({
|
||||
changeSharerConfirmLoading: true
|
||||
});
|
||||
|
||||
let changeSharerModalVisible = false;
|
||||
{
|
||||
this.state.changeSharerModalVisible ?
|
||||
<Modal title={<Text>更新资源「<strong
|
||||
style={{color: '#1890ff'}}>{this.state.selected['name']}</strong>」的授权人
|
||||
</Text>}
|
||||
visible={this.state.changeSharerModalVisible}
|
||||
confirmLoading={this.state.changeSharerConfirmLoading}
|
||||
onOk={async () => {
|
||||
this.setState({
|
||||
changeSharerConfirmLoading: true
|
||||
});
|
||||
|
||||
let result = await request.post(`/resources/${this.state.selected['id']}/assign?type=asset&userIds=${this.state.selectedSharers.join(',')}`);
|
||||
if (result['code'] === 1) {
|
||||
message.success('操作成功');
|
||||
this.loadTableData();
|
||||
} else {
|
||||
message.error(result['message'], 10);
|
||||
changeSharerModalVisible = true;
|
||||
}
|
||||
let changeSharerModalVisible = false;
|
||||
|
||||
this.setState({
|
||||
changeSharerConfirmLoading: false,
|
||||
changeSharerModalVisible: changeSharerModalVisible
|
||||
})
|
||||
}}
|
||||
onCancel={() => {
|
||||
this.setState({
|
||||
changeSharerModalVisible: false
|
||||
})
|
||||
}}
|
||||
okButtonProps={{disabled: !hasPermission(this.state.selected['owner'])}}
|
||||
>
|
||||
let result = await request.post(`/resource-sharers/overwrite-sharers`, {
|
||||
resourceId: this.state.selected['id'],
|
||||
resourceType: 'asset',
|
||||
userIds: this.state.selectedSharers
|
||||
});
|
||||
if (result['code'] === 1) {
|
||||
message.success('操作成功');
|
||||
this.loadTableData();
|
||||
} else {
|
||||
message.error(result['message'], 10);
|
||||
changeSharerModalVisible = true;
|
||||
}
|
||||
|
||||
this.setState({
|
||||
changeSharerConfirmLoading: false,
|
||||
changeSharerModalVisible: changeSharerModalVisible
|
||||
})
|
||||
}}
|
||||
onCancel={() => {
|
||||
this.setState({
|
||||
changeSharerModalVisible: false
|
||||
})
|
||||
}}
|
||||
okButtonProps={{disabled: !hasPermission(this.state.selected['owner'])}}
|
||||
>
|
||||
|
||||
<Transfer
|
||||
dataSource={this.state.users}
|
||||
disabled={!hasPermission(this.state.selected['owner'])}
|
||||
showSearch
|
||||
titles={['未授权', '已授权']}
|
||||
operations={['授权', '移除']}
|
||||
listStyle={{
|
||||
width: 250,
|
||||
height: 300,
|
||||
}}
|
||||
targetKeys={this.state.selectedSharers}
|
||||
onChange={this.handleSharersChange}
|
||||
render={item => `${item.nickname}`}
|
||||
/>
|
||||
</Modal> : undefined
|
||||
}
|
||||
|
||||
<Transfer
|
||||
dataSource={this.state.users}
|
||||
disabled={!hasPermission(this.state.selected['owner'])}
|
||||
showSearch
|
||||
titles={['未授权', '已授权']}
|
||||
operations={['授权', '移除']}
|
||||
listStyle={{
|
||||
width: 250,
|
||||
height: 300,
|
||||
}}
|
||||
targetKeys={this.state.selectedSharers}
|
||||
onChange={this.handleSharersChange}
|
||||
render={item => `${item.nickname}`}
|
||||
/>
|
||||
</Modal>
|
||||
</Content>
|
||||
</>
|
||||
);
|
||||
|
@ -39,13 +39,6 @@ const AssetModal = function ({title, visible, handleOk, handleCancel, confirmLoa
|
||||
}
|
||||
}
|
||||
|
||||
let initAssetTags = [];
|
||||
if (!isEmpty(model['tags'])) {
|
||||
initAssetTags = model['tags'].split(',');
|
||||
}
|
||||
|
||||
let [assetTags, setAssetTags] = useState(initAssetTags);
|
||||
|
||||
const formItemLayout = {
|
||||
labelCol: {span: 6},
|
||||
wrapperCol: {span: 14},
|
||||
@ -100,10 +93,6 @@ const AssetModal = function ({title, visible, handleOk, handleCancel, confirmLoa
|
||||
model.accountType = v;
|
||||
}
|
||||
|
||||
const handleTagsChange = v => {
|
||||
setAssetTags(v);
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
<Modal
|
||||
@ -209,8 +198,8 @@ const AssetModal = function ({title, visible, handleOk, handleCancel, confirmLoa
|
||||
: null
|
||||
}
|
||||
|
||||
<Form.Item label="标签" name='tagArr'>
|
||||
<Select mode="tags" placeholder="请选择标签" defaultValue={assetTags} onChange={handleTagsChange}>
|
||||
<Form.Item label="标签" name='tags'>
|
||||
<Select mode="tags" placeholder="请选择标签">
|
||||
{tags.map(tag => {
|
||||
if (tag === '-') {
|
||||
return undefined;
|
||||
|
Reference in New Issue
Block a user