|
|
@@ -19,12 +19,12 @@
|
|
|
<span class="label">项目名称</span>
|
|
|
<div class="project-item">
|
|
|
<span>{{ project.name }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span class="link" @click="showUpdateField('name', project.name)">更改</span>
|
|
|
</div>
|
|
|
<span class="label">项目分类</span>
|
|
|
<div class="project-item">
|
|
|
<span>{{ project.category }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span class="link" @click="showUpdateField('category', project.category)">更改</span>
|
|
|
</div>
|
|
|
|
|
|
<span class="label" style="line-height: 290px">教材封面</span>
|
|
|
@@ -33,7 +33,7 @@
|
|
|
<img :src="project.cover_image_file_url" alt="cover image" />
|
|
|
</div>
|
|
|
<div v-else></div>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span class="link" @click="showUpdateField('cover_image_file_url', project.cover_image_file_url)">更改</span>
|
|
|
</div>
|
|
|
|
|
|
<div class="label label-list">
|
|
|
@@ -41,18 +41,17 @@
|
|
|
<span>出版单位</span>
|
|
|
<span>作品标签</span>
|
|
|
<span>所属课题</span>
|
|
|
- <span>主编</span>
|
|
|
- <span>副主编</span>
|
|
|
+ <span>作者</span>
|
|
|
</div>
|
|
|
<div class="project-item info-list">
|
|
|
<div class="info-item">
|
|
|
<span>{{ project.language }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span class="link" @click="showUpdateField('language', project.language)">更改</span>
|
|
|
</div>
|
|
|
|
|
|
<div class="info-item">
|
|
|
<span>{{ project.publisher }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span class="link" @click="showUpdateField('publisher', project.publisher)">更改</span>
|
|
|
</div>
|
|
|
|
|
|
<div class="info-item">
|
|
|
@@ -61,58 +60,59 @@
|
|
|
{{ label }}{{ index < project.label_list.length - 1 ? ',' : '' }}
|
|
|
</span>
|
|
|
</span>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span class="link" @click="showUpdateField('label_list', project.label_list)">更改</span>
|
|
|
</div>
|
|
|
|
|
|
<div class="info-item">
|
|
|
<span>{{ project.topic }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span class="link" @click="showUpdateField('topic', project.topic)">更改</span>
|
|
|
</div>
|
|
|
|
|
|
<div class="info-item">
|
|
|
<span>{{ project.editor }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
- </div>
|
|
|
- <div class="info-item">
|
|
|
- <span>{{ project.associate_editor }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span class="link" @click="showUpdateField('editor', project.editor)">更改</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
|
|
|
- <span class="label">作品标签</span>
|
|
|
+ <div class="table-twocolumn">
|
|
|
+ <span class="label">内容简介</span>
|
|
|
<div class="project-item">
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span>{{ project.content_intro }}</span>
|
|
|
+ <span class="link" @click="showUpdateField('content_intro', project.content_intro)">更改</span>
|
|
|
</div>
|
|
|
- <span class="label">语种</span>
|
|
|
+ <span class="label">选题背景</span>
|
|
|
<div class="project-item">
|
|
|
- <span>{{ project.language }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span>{{ project.background }}</span>
|
|
|
+ <span class="link" @click="showUpdateField('background', project.background)">更改</span>
|
|
|
</div>
|
|
|
- <span class="label">所属课题</span>
|
|
|
+ <span class="label">作者简介</span>
|
|
|
<div class="project-item">
|
|
|
- <span>{{ project.topic }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span>{{ project.author_intro }}</span>
|
|
|
+ <span class="link" @click="showUpdateField('author_intro', project.author_intro)">更改</span>
|
|
|
</div>
|
|
|
+ </div>
|
|
|
|
|
|
+ <div class="table-fourcolumn">
|
|
|
<span class="label" style="line-height: 16px">预计容量<br />(课数)</span>
|
|
|
<div class="project-item">
|
|
|
<span>{{ project.content_count_YG }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span class="link" @click="showUpdateField('content_count_YG', project.content_count_YG)">更改</span>
|
|
|
</div>
|
|
|
<span class="label">预计字数</span>
|
|
|
<div class="project-item">
|
|
|
<span>{{ project.word_count_YG }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span class="link" @click="showUpdateField('word_count_YG', project.word_count_YG)">更改</span>
|
|
|
</div>
|
|
|
- <span class="label">计划出版时间</span>
|
|
|
+ <span class="label">计划出版日期</span>
|
|
|
<div class="project-item">
|
|
|
<span>{{ project.plan_publish_date }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span class="link" @click="showUpdateField('plan_publish_date', project.plan_publish_date)">更改</span>
|
|
|
</div>
|
|
|
<span class="label">读者对象</span>
|
|
|
<div class="project-item">
|
|
|
<span>{{ project.reader }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
+ <span class="link" @click="showUpdateField('reader', project.reader)">更改</span>
|
|
|
</div>
|
|
|
<span class="label">项目组长</span>
|
|
|
<div class="project-item">
|
|
|
@@ -133,48 +133,45 @@
|
|
|
<span>{{ project.create_time }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
- <div class="table-twocolumn">
|
|
|
- <span class="label">内容简介</span>
|
|
|
- <div class="project-item">
|
|
|
- <span>{{ project.content_intro }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
- </div>
|
|
|
- <span class="label">选题背景</span>
|
|
|
- <div class="project-item">
|
|
|
- <span>{{ project.background }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
- </div>
|
|
|
- <span class="label">作者简介</span>
|
|
|
- <div class="project-item">
|
|
|
- <span>{{ project.author_intro }}</span>
|
|
|
- <span class="link">更改</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
</main>
|
|
|
|
|
|
- <selectMembers
|
|
|
+ <SelectMembers
|
|
|
:visible.sync="visibleMembers"
|
|
|
:title="selectMembersTitle"
|
|
|
:selected-list="list[type]"
|
|
|
:type="type"
|
|
|
@confirm="handleSelectedMembers"
|
|
|
/>
|
|
|
+ <UpdateProjectField
|
|
|
+ :visible.sync="visibleUpdateField"
|
|
|
+ :project-id="id"
|
|
|
+ :field="curField"
|
|
|
+ :value="curFieldValue"
|
|
|
+ @updateProjectFieldValue="updateProjectFieldValue"
|
|
|
+ />
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { GetProjectInfo, SetProjectMember, SetProjectLeader } from '@/api/project';
|
|
|
+import {
|
|
|
+ GetProjectInfo,
|
|
|
+ SetProjectMember,
|
|
|
+ SetProjectLeader,
|
|
|
+ UpdateProjectFieldValue,
|
|
|
+ SetProjectLabel,
|
|
|
+} from '@/api/project';
|
|
|
import { GetUserList_ID } from '@/api/user';
|
|
|
|
|
|
-import selectMembers from '@/views/create_project/selectProjectMembers.vue';
|
|
|
+import SelectMembers from '@/views/create_project/selectProjectMembers.vue';
|
|
|
import MenuPage from '@/views/personal_workbench/common/menu.vue';
|
|
|
+import UpdateProjectField from './components/UpdateProjectField.vue';
|
|
|
|
|
|
export default {
|
|
|
name: 'ProjectInfoManage',
|
|
|
components: {
|
|
|
- selectMembers,
|
|
|
+ SelectMembers,
|
|
|
MenuPage,
|
|
|
+ UpdateProjectField,
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
@@ -200,7 +197,7 @@ export default {
|
|
|
author_intro: '',
|
|
|
content_count_YG: 100,
|
|
|
word_count_YG: 100000,
|
|
|
- plan_publish_date: '', // 计划出版时间
|
|
|
+ plan_publish_date: '', // 计划出版日期
|
|
|
reader: '', // 读者对象
|
|
|
leader_id_list: [], // 组长列表
|
|
|
leader_name_desc: '', // 组长名称描述
|
|
|
@@ -208,14 +205,13 @@ export default {
|
|
|
member_name_desc: '', // 组员名称描述
|
|
|
creator_name: '', // 创建人名称
|
|
|
create_time: '', // 创建时间
|
|
|
- editor: '', // 主编
|
|
|
- associate_editor: '', // 副主编
|
|
|
+ editor: '', // 作者
|
|
|
cover_image_file_id: null, // 封面图片ID
|
|
|
cover_image_file_url: '', // 封面图片URL
|
|
|
},
|
|
|
- formRules: {
|
|
|
- name: [{ required: true, message: '请输入项目名称', trigger: 'blur' }],
|
|
|
- },
|
|
|
+ visibleUpdateField: false,
|
|
|
+ curField: '',
|
|
|
+ curFieldValue: '',
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
|
@@ -223,8 +219,10 @@ export default {
|
|
|
},
|
|
|
methods: {
|
|
|
getProjectInfo() {
|
|
|
- GetProjectInfo({ id: this.id }).then(({ project_info }) => {
|
|
|
+ GetProjectInfo({ id: this.id }).then(({ project_info, member_list, leader_list }) => {
|
|
|
this.project = project_info;
|
|
|
+ this.project.leader_name_desc = leader_list.map((user) => user.name).join(',');
|
|
|
+ this.project.member_name_desc = member_list.map((user) => user.name).join(',');
|
|
|
this.getUserList_ID(project_info.leader_id_list, 'leader');
|
|
|
this.getUserList_ID(project_info.member_id_list, 'member');
|
|
|
});
|
|
|
@@ -268,10 +266,8 @@ export default {
|
|
|
GetUserList_ID({ id_list }).then(({ user_list }) => {
|
|
|
if (type === 'leader') {
|
|
|
this.list.leader = user_list;
|
|
|
- this.project.leader_name_desc = user_list.map((user) => user.user_name).join(',');
|
|
|
} else if (type === 'member') {
|
|
|
this.list.member = user_list;
|
|
|
- this.project.member_name_desc = user_list.map((user) => user.user_name).join(',');
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
@@ -295,6 +291,42 @@ export default {
|
|
|
this.getProjectInfo();
|
|
|
});
|
|
|
},
|
|
|
+ /**
|
|
|
+ * 显示更新字段对话框
|
|
|
+ * @param {string} field - 字段名称
|
|
|
+ * @param {any} value - 当前字段值
|
|
|
+ */
|
|
|
+ showUpdateField(field, value) {
|
|
|
+ this.curField = field;
|
|
|
+ this.curFieldValue = value;
|
|
|
+ this.visibleUpdateField = true;
|
|
|
+ },
|
|
|
+ /**
|
|
|
+ * 更新项目字段值
|
|
|
+ * @param {string} field_name - 字段名称
|
|
|
+ * @param {any} value - 新的字段值
|
|
|
+ */
|
|
|
+ updateProjectFieldValue(field_name, value) {
|
|
|
+ if (field_name === 'label_list') {
|
|
|
+ SetProjectLabel({
|
|
|
+ project_id: this.id,
|
|
|
+ label_list: value,
|
|
|
+ }).then(() => {
|
|
|
+ this.$message.success('项目标签更新成功');
|
|
|
+ this.getProjectInfo();
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ UpdateProjectFieldValue({
|
|
|
+ project_id: this.id,
|
|
|
+ field_name,
|
|
|
+ value,
|
|
|
+ }).then(() => {
|
|
|
+ this.$message.success('项目更新成功');
|
|
|
+ this.getProjectInfo();
|
|
|
+ });
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|
|
|
@@ -375,21 +407,26 @@ export default {
|
|
|
align-items: center;
|
|
|
justify-content: center;
|
|
|
width: 373px;
|
|
|
- height: 289px;
|
|
|
+ height: 248px;
|
|
|
overflow: hidden;
|
|
|
|
|
|
img {
|
|
|
display: block;
|
|
|
flex: none;
|
|
|
max-width: 373px;
|
|
|
- max-height: 289px;
|
|
|
+ max-height: 248px;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- .table-fourcolumn {
|
|
|
- grid-template-rows: 40px 298px repeat(5, minmax(40px, auto));
|
|
|
+ .table-fourcolumn:first-child {
|
|
|
+ grid-template-rows: 40px 258px;
|
|
|
+ grid-template-columns: 120px 1fr 120px 1fr;
|
|
|
+ }
|
|
|
+
|
|
|
+ .table-fourcolumn:nth-child(3) {
|
|
|
+ grid-template-rows: repeat(2, minmax(40px, auto));
|
|
|
grid-template-columns: 120px 1fr 120px 1fr;
|
|
|
}
|
|
|
|