Journal.vue 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  1. <style lang="scss" scoped>
  2. .preview {
  3. .el-form-item {
  4. margin-bottom: 15px;
  5. }
  6. label,
  7. p {
  8. line-height: 25px !important;
  9. }
  10. }
  11. /deep/.avatar-uploader .el-upload {
  12. width: 148px;
  13. height: 148px;
  14. line-height: 148px;
  15. border: 1px dashed #d9d9d9;
  16. border-radius: 6px;
  17. cursor: pointer;
  18. position: relative;
  19. overflow: hidden;
  20. .avatar {
  21. width: 100%;
  22. height: auto;
  23. }
  24. }
  25. .avatar-uploader .el-upload:hover {
  26. border-color: #409eff;
  27. }
  28. .avatar-uploader-icon {
  29. font-size: 28px;
  30. color: #8c939d;
  31. width: 68px;
  32. height: 68px;
  33. line-height: 68px;
  34. text-align: center;
  35. }
  36. .avatar {
  37. width: 68px;
  38. height: 68px;
  39. display: block;
  40. }
  41. /deep/.speaker_avatar .el-upload {
  42. width: 80px;
  43. height: 80px;
  44. line-height: 80px;
  45. }
  46. </style>
  47. <template>
  48. <section>
  49. <p>中科院全刊</p>
  50. <div class="content">
  51. <div class="filter">
  52. <el-form
  53. size="small"
  54. label-width="70px"
  55. :inline="true"
  56. label-position="left"
  57. >
  58. <el-form-item label="">
  59. <el-input
  60. clearable
  61. placeholder="请输入信息标题"
  62. v-model="form.name"
  63. @clear="getData"
  64. ></el-input>
  65. </el-form-item>
  66. <el-form-item>
  67. <el-button type="primary" @click="search">搜索</el-button>
  68. </el-form-item>
  69. <el-form-item style="float: right">
  70. <el-button @click="add" type="primary">添加期刊</el-button>
  71. </el-form-item>
  72. </el-form>
  73. </div>
  74. <el-table
  75. class="table"
  76. :data="list"
  77. height="50vh"
  78. border
  79. v-loading="loading"
  80. default-expand-all
  81. row-key="id"
  82. style="width: 100%"
  83. >
  84. <el-table-column prop="img" label="期刊封面">
  85. <template slot-scope="scope">
  86. <img :src="scope.row.img" alt="" height="80" width="60" />
  87. </template>
  88. </el-table-column>
  89. <el-table-column prop="name" width="180" label="期刊名称">
  90. </el-table-column>
  91. <el-table-column prop="wxcode" label="微信号"> </el-table-column>
  92. <el-table-column prop="subject_name" label="主办单位">
  93. </el-table-column>
  94. <el-table-column prop="desc" width="300" label="简介">
  95. </el-table-column>
  96. <el-table-column prop="name" label="中文名称"> </el-table-column>
  97. <el-table-column prop="ename" label="外文名称"> </el-table-column>
  98. <el-table-column prop="languages" label="语种"> </el-table-column>
  99. <el-table-column prop="editor" label="主编"> </el-table-column>
  100. <el-table-column prop="corganizers" label="主管单位"> </el-table-column>
  101. <el-table-column prop="publishingUnit" label="办刊单位">
  102. </el-table-column>
  103. <el-table-column prop="publishingTime" label="创刊时间">
  104. </el-table-column>
  105. <el-table-column prop="domestic" label="国内刊号"> </el-table-column>
  106. <el-table-column prop="issn" label="国际刊号"> </el-table-column>
  107. <el-table-column prop="website" label="期刊官网"> </el-table-column>
  108. <el-table-column prop="editorialAddress" label="编辑部地址">
  109. </el-table-column>
  110. <el-table-column prop="zip" width="150" label="操作" fixed="right">
  111. <template slot-scope="scope">
  112. <el-button type="text" @click="showQrcode(scope.row)"
  113. >二维码上传</el-button
  114. >
  115. <el-button type="text" @click="showJournal(scope.row)"
  116. >查看</el-button
  117. >
  118. <el-button class="edit" type="text" @click="edit(scope.row)"
  119. >编辑</el-button
  120. >
  121. <el-button class="del" @click="del" type="text">删除</el-button>
  122. </template>
  123. </el-table-column>
  124. </el-table>
  125. <Page
  126. ref="pageButton"
  127. :current="form.page"
  128. :page_size="form.page_size"
  129. :total="total"
  130. @pageChange="gopage"
  131. />
  132. <!--二维码上传-->
  133. <el-dialog
  134. class="fu-dialog"
  135. :title="dialogTitle"
  136. :close-on-click-modal="false"
  137. :visible.sync="dialogVisible"
  138. >
  139. <el-form
  140. size="small"
  141. class="preview"
  142. :inline="false"
  143. label-width="100px"
  144. :model="form1"
  145. ref="form1"
  146. >
  147. <el-form-item label="上传二维码:" prop="img">
  148. <el-upload
  149. class="avatar-uploader"
  150. action="/api/admin/uploadfile"
  151. :show-file-list="false"
  152. :on-success="handleAvatarSuccess"
  153. >
  154. <img v-if="form1.qrcode" :src="form1.qrcode" class="avatar" />
  155. <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  156. </el-upload>
  157. <span style="font-size: 12px; color: #999999"
  158. >建议图片尺寸为:210*160</span
  159. >
  160. </el-form-item>
  161. </el-form>
  162. <span slot="footer" class="dialog-footer">
  163. <el-button size="small" type="normal" @click="dialogVisible=false,this.form1={}">取消</el-button>
  164. <el-button size="small" type="primary" @click="save">确 定</el-button>
  165. </span>
  166. </el-dialog>
  167. </div>
  168. </section>
  169. </template>
  170. <script>
  171. import Page from "../../components/Page";
  172. export default {
  173. components: {
  174. Page,
  175. },
  176. data() {
  177. return {
  178. // edit:0,
  179. form: { name: "", page: 1, page_size: 20 },
  180. total: 1,
  181. list: [{ name: "2333" }],
  182. loading: false,
  183. input: "",
  184. dialogVisible: false,
  185. dialogTitle: "",
  186. form1: {},
  187. };
  188. },
  189. methods: {
  190. showQrcode(row){
  191. this.form1.qrcode = row.qrcode;
  192. this.dialogVisible = true;
  193. },
  194. showJournal(row){
  195. this.$router.push({
  196. path:"/journal/journal/show",
  197. query:{id:row.id}
  198. })
  199. },
  200. //封面
  201. handleAvatarSuccess(res, file) {
  202. this.$set(this.form1,'img',file.response.data)
  203. },
  204. gopage(size) {
  205. if (size) {
  206. this.form.page_size = size;
  207. }
  208. this.form.page = this.$refs.pageButton.page;
  209. this.getData();
  210. },
  211. edit(row) {
  212. this.$router.push({
  213. path: "/journal/journal/add",
  214. query: { id: row.id },
  215. });
  216. },
  217. add() {
  218. this.$router.push({ path: "/journal/journal/add" });
  219. },
  220. detail(id) {
  221. this.$router.push({
  222. path: "/company/detail",
  223. query: { id: id, page: this.form.page, page_size: this.form.page_size },
  224. });
  225. },
  226. search() {
  227. this.getData();
  228. },
  229. getData() {
  230. var parm = this.form;
  231. this.loading = true;
  232. this.$api.getJournalList(parm).then((res) => {
  233. this.list = res.data.data.list;
  234. this.total = res.data.data.total;
  235. this.loading = false;
  236. });
  237. },
  238. del(id) {
  239. this.$confirm("确定删除吗", "提示", {
  240. type: "warning",
  241. }).then(() => {
  242. this.$api.deleteEnterprise({ id: id }).then((res) => {
  243. this.$message({
  244. message: "删除成功",
  245. type: "success",
  246. });
  247. this.getData();
  248. });
  249. });
  250. },
  251. },
  252. created() {
  253. this.getData();
  254. },
  255. };
  256. </script>