|
|
@@ -325,116 +325,148 @@
|
|
|
{{ issueChannel.art_count }} 篇文章</span
|
|
|
>
|
|
|
</h4>
|
|
|
- <el-button type="primary" size="small" @click="previewBookItem"
|
|
|
- >预览</el-button
|
|
|
- >
|
|
|
- </div>
|
|
|
- <div
|
|
|
- class="channel-item"
|
|
|
- v-for="(item, index) in issueChannel.chn_art_data"
|
|
|
- :key="index"
|
|
|
- >
|
|
|
- <div class="channel-top">
|
|
|
- <i
|
|
|
- class="el-icon-caret-bottom"
|
|
|
- v-if="item.show"
|
|
|
- @click="item.show = !item.show"
|
|
|
- ></i>
|
|
|
- <i
|
|
|
- class="el-icon-caret-top"
|
|
|
- v-else
|
|
|
- @click="item.show = !item.show"
|
|
|
- ></i>
|
|
|
- <div class="channel-top-name">
|
|
|
- <template v-if="!item.editFlag">
|
|
|
- <span>{{ item.chn_name }}</span>
|
|
|
- <svg-icon
|
|
|
- icon-class="edit"
|
|
|
- class="edit-chn-name"
|
|
|
- @click="item.editFlag = true"
|
|
|
- ></svg-icon>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <el-input
|
|
|
- v-model="item.edit_name"
|
|
|
- maxlength="200"
|
|
|
- ></el-input>
|
|
|
- <svg-icon
|
|
|
- icon-class="save-line"
|
|
|
- class="edit-chn-name"
|
|
|
- @click="saveChnDate(item.edit_name, index)"
|
|
|
- ></svg-icon>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- <el-button
|
|
|
- type="text"
|
|
|
- @click="handleArticle('', 1, item.chn_name)"
|
|
|
- ><i class="el-icon-plus"></i>新增英文内容</el-button
|
|
|
+ <div>
|
|
|
+ <el-button type="primary" size="small" @click="addChnDate"
|
|
|
+ >新增栏目</el-button
|
|
|
>
|
|
|
<el-button
|
|
|
- type="text"
|
|
|
- @click="handleArticle('', 0, item.chn_name)"
|
|
|
- ><i class="el-icon-plus"></i>新增中文内容</el-button
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ @click="previewBookItem"
|
|
|
+ >预览</el-button
|
|
|
>
|
|
|
</div>
|
|
|
- <el-collapse-transition>
|
|
|
- <template v-if="item.show">
|
|
|
- <draggable
|
|
|
- v-model="item.arts"
|
|
|
- chosenClass="chosen"
|
|
|
- forceFallback="true"
|
|
|
- group="people"
|
|
|
- animation="1000"
|
|
|
- @start="onStart"
|
|
|
- @end="onEnd()"
|
|
|
- class="article-list"
|
|
|
- handle=".mover"
|
|
|
- >
|
|
|
- <li v-for="(itema, indexa) in item.arts" :key="indexa">
|
|
|
+ </div>
|
|
|
+ <draggable
|
|
|
+ v-model="issueChannel.chn_art_data"
|
|
|
+ chosenClass="chosen"
|
|
|
+ forceFallback="true"
|
|
|
+ group="peoples"
|
|
|
+ animation="100"
|
|
|
+ @start="onStarts"
|
|
|
+ @end="onEnds()"
|
|
|
+ class="article-list"
|
|
|
+ handle=".movers"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="channel-item"
|
|
|
+ v-for="(item, index) in issueChannel.chn_art_data"
|
|
|
+ :key="index"
|
|
|
+ >
|
|
|
+ <div class="channel-top">
|
|
|
+ <svg-icon
|
|
|
+ icon-class="sort"
|
|
|
+ draggable="true"
|
|
|
+ class="movers"
|
|
|
+ ></svg-icon>
|
|
|
+ <i
|
|
|
+ class="el-icon-caret-bottom"
|
|
|
+ v-if="item.show"
|
|
|
+ @click="item.show = !item.show"
|
|
|
+ ></i>
|
|
|
+ <i
|
|
|
+ class="el-icon-caret-top"
|
|
|
+ v-else
|
|
|
+ @click="item.show = !item.show"
|
|
|
+ ></i>
|
|
|
+ <div class="channel-top-name">
|
|
|
+ <template v-if="!item.editFlag">
|
|
|
+ <span>{{ item.chn_name }}</span>
|
|
|
<svg-icon
|
|
|
- icon-class="sort"
|
|
|
- draggable="true"
|
|
|
- class="mover"
|
|
|
+ icon-class="edit"
|
|
|
+ class="edit-chn-name"
|
|
|
+ @click="editChnDate(item, index)"
|
|
|
></svg-icon>
|
|
|
- <div class="items">
|
|
|
- <h6>{{ itema.art_title }}</h6>
|
|
|
- <span>BY {{ itema.art_author }}</span>
|
|
|
- <span
|
|
|
- >创建人:{{
|
|
|
- itema.creator_real_name || itema.creator_user_name
|
|
|
- }}</span
|
|
|
- >
|
|
|
- <span>{{ itema.create_time }}</span>
|
|
|
- <span
|
|
|
- >最后编辑:{{
|
|
|
- itema.updater_real_name || itema.updater_user_name
|
|
|
- }}</span
|
|
|
- >
|
|
|
- <span>{{ itema.update_time }}</span>
|
|
|
- </div>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <el-input
|
|
|
+ v-model="item.edit_name"
|
|
|
+ maxlength="200"
|
|
|
+ ></el-input>
|
|
|
<svg-icon
|
|
|
- icon-class="edit"
|
|
|
- class="edit-article"
|
|
|
- @click="
|
|
|
- handleArticle(
|
|
|
- itema.id,
|
|
|
- itema.en_flag,
|
|
|
- item.chn_name
|
|
|
- )
|
|
|
- "
|
|
|
+ icon-class="save-line"
|
|
|
+ class="edit-chn-name"
|
|
|
+ @click="saveChnDate(item.edit_name, index)"
|
|
|
></svg-icon>
|
|
|
- <span class="border"></span>
|
|
|
- <i
|
|
|
- class="el-icon-delete"
|
|
|
- @click="
|
|
|
- handleDeleteArticle(item.arts, indexa, itema.id)
|
|
|
- "
|
|
|
- ></i>
|
|
|
- </li>
|
|
|
- </draggable>
|
|
|
- </template>
|
|
|
- </el-collapse-transition>
|
|
|
- </div>
|
|
|
+ </template>
|
|
|
+ <svg-icon
|
|
|
+ icon-class="deletes-line"
|
|
|
+ class="edit-chn-name"
|
|
|
+ @click="deleteChnDate(index)"
|
|
|
+ ></svg-icon>
|
|
|
+ </div>
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ @click="handleArticle('', 1, item.chn_name)"
|
|
|
+ ><i class="el-icon-plus"></i>新增英文内容</el-button
|
|
|
+ >
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ @click="handleArticle('', 0, item.chn_name)"
|
|
|
+ ><i class="el-icon-plus"></i>新增中文内容</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ <el-collapse-transition>
|
|
|
+ <template v-if="item.show">
|
|
|
+ <draggable
|
|
|
+ v-model="item.arts"
|
|
|
+ chosenClass="chosen"
|
|
|
+ forceFallback="true"
|
|
|
+ group="people"
|
|
|
+ animation="1000"
|
|
|
+ @start="onStart"
|
|
|
+ @end="onEnd()"
|
|
|
+ class="article-list"
|
|
|
+ handle=".mover"
|
|
|
+ >
|
|
|
+ <li v-for="(itema, indexa) in item.arts" :key="indexa">
|
|
|
+ <svg-icon
|
|
|
+ icon-class="sort"
|
|
|
+ draggable="true"
|
|
|
+ class="mover"
|
|
|
+ ></svg-icon>
|
|
|
+ <div class="items">
|
|
|
+ <h6>{{ itema.art_title }}</h6>
|
|
|
+ <span>BY {{ itema.art_author }}</span>
|
|
|
+ <span
|
|
|
+ >创建人:{{
|
|
|
+ itema.creator_real_name ||
|
|
|
+ itema.creator_user_name
|
|
|
+ }}</span
|
|
|
+ >
|
|
|
+ <span>{{ itema.create_time }}</span>
|
|
|
+ <span
|
|
|
+ >最后编辑:{{
|
|
|
+ itema.updater_real_name ||
|
|
|
+ itema.updater_user_name
|
|
|
+ }}</span
|
|
|
+ >
|
|
|
+ <span>{{ itema.update_time }}</span>
|
|
|
+ </div>
|
|
|
+ <svg-icon
|
|
|
+ icon-class="edit"
|
|
|
+ class="edit-article"
|
|
|
+ @click="
|
|
|
+ handleArticle(
|
|
|
+ itema.id,
|
|
|
+ itema.en_flag,
|
|
|
+ item.chn_name
|
|
|
+ )
|
|
|
+ "
|
|
|
+ ></svg-icon>
|
|
|
+ <span class="border"></span>
|
|
|
+ <i
|
|
|
+ class="el-icon-delete"
|
|
|
+ @click="
|
|
|
+ handleDeleteArticle(item.arts, indexa, itema.id)
|
|
|
+ "
|
|
|
+ ></i>
|
|
|
+ </li>
|
|
|
+ </draggable>
|
|
|
+ </template>
|
|
|
+ </el-collapse-transition>
|
|
|
+ </div>
|
|
|
+ </draggable>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div v-if="stepIndex === 2">
|
|
|
@@ -1166,6 +1198,15 @@ export default {
|
|
|
});
|
|
|
this.handleUpdateChnArtData();
|
|
|
},
|
|
|
+ //开始拖拽事件
|
|
|
+ onStarts(val) {},
|
|
|
+ //拖拽结束事件
|
|
|
+ onEnds() {
|
|
|
+ this.issueChannel.chn_art_data.forEach((item, index) => {
|
|
|
+ item.chn_idx = index;
|
|
|
+ });
|
|
|
+ this.handleUpdateChnArtData();
|
|
|
+ },
|
|
|
// 更新栏目数据
|
|
|
handleUpdateChnArtData() {
|
|
|
getLogin("/PaperServer/Manager/IssueManager/EditIssueChnArtData", {
|
|
|
@@ -1178,15 +1219,57 @@ export default {
|
|
|
});
|
|
|
},
|
|
|
saveChnDate(value, index) {
|
|
|
+ let flag = false;
|
|
|
// 判断是否有值并且trim
|
|
|
- if (value && value.trim()) {
|
|
|
- this.issueChannel.chn_art_data[index].chn_name = value.trim();
|
|
|
- this.onEnd();
|
|
|
- } else {
|
|
|
+ this.issueChannel.chn_art_data.forEach((item) => {
|
|
|
+ if (item.edit_name && item.edit_name.trim()) {
|
|
|
+ item.chn_name = item.edit_name.trim();
|
|
|
+ } else {
|
|
|
+ flag = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ if (flag) {
|
|
|
this.$message.warning("栏目名称不能为空");
|
|
|
+ } else {
|
|
|
+ this.onEnd();
|
|
|
}
|
|
|
// if(this.issueChannel.chn_art_data[index].)
|
|
|
},
|
|
|
+ // 点击编辑栏目名称按钮
|
|
|
+ editChnDate(item, index) {
|
|
|
+ if (!item.hasOwnProperty("editFlag")) {
|
|
|
+ this.$set(item, "editFlag", false);
|
|
|
+ }
|
|
|
+ item.editFlag = true;
|
|
|
+ },
|
|
|
+ // 删除栏目
|
|
|
+ deleteChnDate(index) {
|
|
|
+ this.$confirm("确定删除此栏目吗?", "提示", {
|
|
|
+ confirmButtonText: "确定",
|
|
|
+ cancelButtonText: "取消",
|
|
|
+ type: "warning",
|
|
|
+ })
|
|
|
+ .then(() => {
|
|
|
+ this.issueChannel.chn_art_data.splice(index, 1);
|
|
|
+ this.issueChannel.chn_art_data.forEach((item, indexs) => {
|
|
|
+ item.chn_idx = indexs;
|
|
|
+ });
|
|
|
+ this.onEnd();
|
|
|
+ })
|
|
|
+ .catch(() => {});
|
|
|
+ },
|
|
|
+ // 新增栏目
|
|
|
+ addChnDate() {
|
|
|
+ let obj = {
|
|
|
+ chn_name: "",
|
|
|
+ edit_name: "",
|
|
|
+ chn_idx: this.issueChannel.chn_art_data.length - 1,
|
|
|
+ arts: [],
|
|
|
+ show: true,
|
|
|
+ };
|
|
|
+ this.issueChannel.chn_art_data.push(obj);
|
|
|
+ },
|
|
|
// 预览栏目
|
|
|
previewBookItem() {
|
|
|
this.previewBook = true;
|