zhuxinbo %!s(int64=5) %!d(string=hai) anos
pai
achega
6ba016491b
Modificáronse 1 ficheiros con 166 adicións e 101 borrados
  1. 166 101
      src/views/modules/material/scriptMaterial.vue

+ 166 - 101
src/views/modules/material/scriptMaterial.vue

@@ -18,6 +18,15 @@
 .role-item .ant-form-item {
   margin-bottom: 0;
 }
+.ant-list-item {
+  align-items: flex-start;
+}
+#only-des .ant-list-item-content-single {
+  justify-content: center;
+}
+#only-des .ant-comment-content-author {
+  justify-content: center;
+}
 </style>
 <style lang="scss" scoped>
 .home-item {
@@ -48,7 +57,7 @@
 //         width:70%
 //     }
 // } /*>=1100的设备*/
-@media (min-width: 1600px) {
+@media (min-width: 1450px) {
   .home-item {
     border-style: solid;
     border-width: 1px;
@@ -164,7 +173,9 @@ a {
       <a-form layout="inline">
         <a-row :gutter="24">
           <a-col :md="8" :sm="8">
-            <selectTable :projectId.sync="queryParam.projectId"></selectTable>
+            <a-form-item label="剧本名称">
+              <a-input placeholder="请输入剧本名称" v-model="queryParam.dramaName"></a-input>
+            </a-form-item>
           </a-col>
           <a-col :md="8" :sm="8">
             <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
@@ -194,9 +205,9 @@ a {
     </div>
 
     <div v-if="dataSource.length > 0">
-      <a-checkbox-group @change="onChangeCheck" v-model="checkArr" class="home-card">
-        <div class="home-item" v-for="(items, index) in dataSource" :key="index" @click="showDetail(items)">
-          <div class="home-right">
+      <div class="home-card">
+        <div class="home-item" v-for="(items, index) in dataSource" :key="index">
+          <div class="home-right" @click="showDetail(items)">
             <span
               @click.stop
               style="color: #999; fontSize: 16px;padding-bottom:10px;display:block;width:100%;overflow: hidden;text-overflow: ellipsis;"
@@ -216,12 +227,11 @@ a {
             <div class="bh">字数:0  </div> -->
             <span style="color: black; fontSize: 16px;padding-top:10px;display:block;width:100%" @click.stop>
               {{ items.createTime }}
-              <a style="float:right" @click.stop="addRole(items)"> 添加角色</a>
-              <a style="float:right;margin-right:15px" @click.stop="writeScript(items)"> 编写剧本</a>
+              <a style="float:right;" @click.stop="writeScript(items)"> 编写剧本</a>
             </span>
           </div>
         </div>
-      </a-checkbox-group>
+      </div>
       <a-pagination
         size="small"
         :showTotal="ipagination.showTotal"
@@ -326,50 +336,46 @@ a {
         </a-form-item>
       </a-form>
     </a-modal>
-    <a-modal title="脚本内容" v-model="visibleScript" :maskClosable="false" :width="800">
+    <a-modal title="脚本内容" v-model="visibleScript" :maskClosable="false" :width="800" class="role-item">
       <template slot="footer">
         <a-button key="back" @click="closeScript">取消</a-button>
         <a-button key="submit" type="primary" @click="handleOkScript">
           确定
         </a-button>
       </template>
-      <a-list
-        v-if="comments.length"
-        :dataSource="comments"
-        :header="`${comments.length} ${comments.length > 1 ? 'replies' : 'reply'}`"
-        itemLayout="horizontal"
-      >
-        <a-list-item slot="renderItem" slot-scope="item">
-          <a-comment :author="item.author" :avatar="item.avatar" :content="item.content" :datetime="item.datetime">
-          </a-comment>
+      <a-list v-if="comments.length" :dataSource="comments" itemLayout="horizontal">
+        <a-list-item slot="renderItem" slot-scope="item, index" v-if="item.author == '情节描述'" id="only-des">
+          <a-comment :author="item.author" :content="item.content"> </a-comment>
+          <!-- <a slot="actions" @click="editAction(item, index)">修改</a> -->
+          <a slot="actions" @click="deleteAction(item, index)">删除</a>
+        </a-list-item>
+        <a-list-item slot="renderItem" slot-scope="item" v-else>
+          <a-comment :author="item.author" :avatar="item.avatar" :content="item.content"> </a-comment>
+          <!-- <a slot="actions" @click="editAction(item, index)">修改</a> -->
+          <a slot="actions" @click="deleteAction(item, index)">删除</a>
         </a-list-item>
       </a-list>
       <a-comment>
-        <a-select v-model="author" slot="avatar" placeholder="请选择审核状态">
-          <a-select-option value="情节描述">情节描述</a-select-option>
-          <a-select-option value="角色1">角色1</a-select-option>
-        </a-select>
+        <div slot="avatar">
+          <a-select v-model="author" @change="getAuthor" style="width:100px">
+            <a-select-option v-for="(item, index) of roleList" :key="index" :value="item.buttonType">{{
+              item.name
+            }}</a-select-option>
+          </a-select>
+        </div>
+
         <div slot="content">
           <a-form-item>
             <a-textarea :rows="4" @change="handleChange" :value="value"></a-textarea>
           </a-form-item>
           <a-form-item>
             <a-button htmlType="submit" :loading="submitting" @click="handleSubmit" type="primary">
-              Add Comment
+              添加对话
             </a-button>
           </a-form-item>
         </div>
       </a-comment>
-      <a-form :form="form"> </a-form>
-    </a-modal>
-    <a-modal title="添加角色" v-model="visibleRole" :maskClosable="false" :width="1000" class="role-item">
-      <template slot="footer">
-        <a-button key="back" @click="visibleRole = false">取消</a-button>
-        <a-button key="submit" type="primary" @click="visibleRole = false">
-          确定
-        </a-button>
-      </template>
-      <a-form :form="formRole">
+      <a-form :form="formRole" v-if="repeat">
         <a-row :gutter="24" style="border-bottom:1px solid #f2f2f2">
           <a-col :span="6">
             <a-form-item
@@ -389,12 +395,14 @@ a {
               :wrapper-col="{ xs: { span: 24 }, sm: { span: 17 } }"
               label="性别"
             >
-              <a-input
-                placeholder="请输入性别"
+              <a-select
                 v-decorator="[
                   'sex' // 给表单赋值或拉取表单时,该input对应的key
                 ]"
-              />
+              >
+                <a-select-option :value="1">男</a-select-option>
+                <a-select-option :value="2">女</a-select-option>
+              </a-select>
             </a-form-item>
           </a-col>
           <a-col :span="18">
@@ -421,14 +429,30 @@ a {
           </a-col>
         </a-row>
       </a-form>
-      <a-list itemLayout="horizontal" :dataSource="listData">
-        <a-list-item slot="renderItem" slot-scope="item">
-          <a-list-item-meta :description="item.introduction">
-            <a slot="title">{{ item.name }}</a>
-            <a-avatar slot="avatar" src="https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png" />
-          </a-list-item-meta>
-        </a-list-item>
-      </a-list>
+    </a-modal>
+    <a-modal title="内容展示" v-model="visibleScriptShow" :footer="null" :width="800" class="role-item">
+      <div id="printTest" v-if="inforDetail">
+        <h3 style="text-align:center">{{ inforDetail.dramaName }}</h3>
+        <p style="text-align:center">
+          类型:{{ inforDetail.category }}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; 创作者:{{
+            inforDetail.userName
+          }}
+        </p>
+        <P
+          v-for="(item, index) of comments"
+          :key="index"
+          style="font-size:16px"
+          :style="{ fontWeight: item.author == '情节描述' ? '300' : '700' }"
+        >
+          <span style="display:inline-block;">{{ item.author == '情节描述' ? '' : item.author + ':' }}</span>
+          <span>
+            {{ item.author == '情节描述' ? '【' + item.content + '】' : item.content }}
+          </span>
+        </P>
+      </div>
+      <a-button v-print="'#printTest'" type="primary">
+        打印
+      </a-button>
     </a-modal>
   </a-card>
 </template>
@@ -437,7 +461,6 @@ a {
 import { JeecgListMixin } from '@/mixins/JeecgListMixin'
 import JEllipsis from '@/components/jeecg/JEllipsis'
 import UploadToAli from '@femessage/upload-to-ali'
-import { fileCheck, fileInsert, fileEdit } from '@/api/actor'
 import { getAction, postAction, postFile, deleteAction } from '@/api/manage'
 import qs from 'qs'
 import { mapGetters } from 'vuex'
@@ -445,29 +468,28 @@ import moment from 'moment'
 import JTreeSelect from '@/components/jeecg/JTreeSelect'
 import selectTable from '@/views/modules/Statistics/components/selecTable.vue'
 
-import BMF from 'browser-md5-file'
 import { stopOtherVideo, closeAllVideoFun } from '@/utils/videoControl'
-import accountCheck from './accountCheck'
 export default {
   name: 'YardList',
   mixins: [JeecgListMixin],
   components: {
     JEllipsis,
     UploadToAli,
-    accountCheck,
     selectTable,
     JTreeSelect
   },
 
   data() {
     return {
-      author: '情节描述',
+      author: 'scence',
       comments: [],
+      roleList: [],
       submitting: false,
       value: '',
       projectId: '',
       inputVisible: false,
       visibleScript: false,
+      visibleScriptShow: false,
       visibleRole: false,
       inputValue: '',
       labelCol: {
@@ -489,12 +511,6 @@ export default {
       noImgUrl: require('@/assets/img/noImg.png'),
       queryParam: {},
       dataElse: [],
-      ascription: {
-        clipId: [], //剪辑人id
-        shotId: [], //拍摄人id
-        planId: [], //策划id
-        planeId: [] //平面id
-      },
       show: true,
       visible: false,
       visibleDetail: false,
@@ -506,30 +522,10 @@ export default {
       formRole: this.$form.createForm(this),
       listData: [],
       tags: [],
-      refuseFile: [],
-      refuseReason: '',
-      creativeCopywriter: '',
-      customDomain: '',
-      region: 'oss-cn-beijing',
-      bucket: 'ctop-media',
-      acceptVideo: 'video/mpeg,video/mp4',
-      acceptImage: 'image/jpeg,image/jpg,image/png',
-      accessKeyId: 'LTAIbNbqWzSOklQV',
-      accessKeySecret: '1rkPz7JNoXk8sJevPaeYHWqfkQXBGh',
-      checkArr: [],
-      checkAll: false,
-      showUrl: '',
-      showUrlWater: '',
-      materialName: '',
-      materialDescribe: '',
       name: '',
       detail: null,
       add: true,
       id: '',
-      role: {
-        roleCode: '',
-        roleName: ''
-      },
       key: '0',
       mediaId: null,
       sizeType: [],
@@ -537,7 +533,8 @@ export default {
       repeat: false,
       excellent: 0,
       code: '',
-      dramaId: null
+      dramaId: null,
+      inforDetail: null
     }
   },
   filters: {
@@ -555,11 +552,50 @@ export default {
   created() {
     this.ipagination.pageSize = 8
   },
-  updated() {
-    stopOtherVideo()
-  },
   watch: {},
   methods: {
+    deleteAction(item, index) {
+      postAction('/ctop/dramaItemInfo/delete', { id: item.id }).then(res => {
+        if (res.success) {
+          this.comments.splice(index, 1)
+        }
+      })
+    },
+    editAction(item, index) {
+      //   postAction('/ctop/dramaItemInfo/edit', { id: item.id }).then(res => {
+      //     if (res.success) {
+      //       this.comments.splice(index, 1)
+      //     }
+      //   })
+    },
+    showDetail(item) {
+      this.visibleScriptShow = true
+      this.inforDetail = item
+      getAction('/ctop/dramaInfo/detail', { dramaId: item.id }).then(res => {
+        console.log(res)
+        if (res.success) {
+          this.comments = res.itemInfos.map(v => {
+            return {
+              ...v,
+              author: v.type == 'scence' ? '情节描述' : v.roleName,
+              avatar: 'https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png',
+              content: v.content,
+              edit: false
+            }
+          })
+          this.roleList = res.roleInfos
+        }
+      })
+    },
+    getAuthor(e) {
+      console.log(e)
+      if (e == 'createRole') {
+        this.author = ''
+        this.repeat = true
+      } else {
+        this.repeat = false
+      }
+    },
     handleSubmit() {
       if (!this.value) {
         return
@@ -567,37 +603,67 @@ export default {
 
       this.submitting = true
 
-      setTimeout(() => {
+      //   setTimeout(() => {
+      postAction('/ctop/dramaItemInfo/add', {
+        dramaId: this.dramaId,
+        content: this.value,
+        buttonType: this.author
+      }).then(res => {
+        console.log(res)
         this.submitting = false
-        this.comments = [
-          ...this.comments,
-          {
-            author: this.author,
-            avatar: 'https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png',
-            content: this.value,
-            datetime: moment().fromNow()
-          }
-        ]
-        this.value = ''
-      }, 1000)
+        if (res.success) {
+          this.comments = [
+            ...this.comments,
+            {
+              author: this.roleList.filter(item => {
+                return this.author == item.buttonType
+              })[0].name,
+              avatar: 'https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png',
+              content: this.value,
+              datetime: moment().fromNow(),
+              edit: false
+            }
+          ]
+          this.value = ''
+        } else {
+          this.$message.error('添加失败')
+        }
+      })
+
+      //   }, 1000)
     },
     handleChange(e) {
       this.value = e.target.value
     },
     writeScript(item) {
       this.visibleScript = true
+      this.dramaId = item.id
+      this.author = 'scence'
+      getAction('/ctop/dramaInfo/detail', { dramaId: item.id }).then(res => {
+        console.log(res)
+        if (res.success) {
+          this.comments = res.itemInfos.map(v => {
+            return {
+              ...v,
+              author: v.type == 'scence' ? '情节描述' : v.roleName,
+              avatar: 'https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png',
+              content: v.content,
+              edit: false
+            }
+          })
+          this.roleList = res.roleInfos
+        }
+      })
     },
     addRole(item) {
       this.visibleRole = true
       this.dramaId = item.id
-      this.roleList()
+      this.getRoleList()
     },
-    roleList() {
-      getAction('/ctop/dramaRoleInfo/list', { dramaId: this.dramaId }).then(res => {
+    getRoleList() {
+      getAction('/ctop/dramaInfo/detail', { dramaId: this.dramaId }).then(res => {
         if (res.success) {
-          this.listData = res.result.records
-        } else {
-          this.listData = []
+          this.roleList = res.roleInfos
         }
       })
     },
@@ -606,9 +672,10 @@ export default {
         if (err) {
           // 这里做逻辑处理
         } else {
-          postAction('/ctop/dramaRoleInfo/list', params).then(res => {
+          var params = { ...values, dramaId: this.dramaId }
+          postAction('/ctop/dramaRoleInfo/add', params).then(res => {
             if (res.success) {
-              this.roleList()
+              this.getRoleList()
             }
           })
           //   this.listData.push({ name: values.name, sex: values.sex, introduction: values.introduction })
@@ -715,8 +782,6 @@ export default {
     },
     getDataSource(page, pageSize) {
       this.ipagination.current = page
-      this.checkArr = []
-      this.checkAll = false
       this.loadData()
     }
   }