| 
					
				 | 
			
			
				@@ -0,0 +1,233 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <vxe-toolbar perfect> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <template v-slot:buttons> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <vxe-button icon="el-icon-delete" status="perfect" @click="deleteData">删除</vxe-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <vxe-button icon="el-icon-position" status="perfect" @click="updateData">编辑</vxe-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <vxe-button icon="el-icon-plus" status="perfect" @click="addData">新增</vxe-button> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </vxe-toolbar> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <vxe-table 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      border 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      show-overflow 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      row-id="id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      size="medium" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :data="tableData" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @radio-change="radioChangeEvent" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <vxe-table-column type="radio" width="60" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <vxe-table-column type="seq" field="序号" width="60" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <vxe-table-column field="name" title="书名" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <vxe-table-column field="ISBN" title="编码" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <vxe-table-column field="type" title="类型"></vxe-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <vxe-table-column field="author" title="作者"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <template v-slot="{row}"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-tag v-for="author in row.author" :key="author.id">{{author.author__name}}</el-tag> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </vxe-table-column> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <vxe-table-column field="price" title="价格" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <vxe-table-column field="release_time" title="出版日期" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </vxe-table> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <vxe-modal 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      v-model="modelVisi" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      width="600" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :title="modelTitle" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      show-footer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @close="close" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      resize 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @confirm="submitEvent" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <vxe-form ref="xForm" title-align="right" title-width="100" :data="formData"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <vxe-form-item title="书名" field="name" span="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <template v-slot="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <vxe-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              v-model="formData.name" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              placeholder="请输入书名" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              @input="$refs.xForm.updateStatus(scope)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ></vxe-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </vxe-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <vxe-form-item title="ISBN" field="ISBN" span="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <template v-slot="scope"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <vxe-input 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              v-model="formData.ISBN" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              placeholder="请输入ISBN" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              @input="$refs.xForm.updateStatus(scope)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ></vxe-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </vxe-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <vxe-form-item title="类型" field="type" span="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <template v-slot> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <vxe-select v-model="formData.type" clearable> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <vxe-option v-for="t in types" :key="t.id" :value="t.id" :label="t.name"></vxe-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </vxe-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </vxe-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <vxe-form-item title="作者" field="type" span="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <template v-slot> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <vxe-select v-model="formData.author" multiple clearable> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <vxe-option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                v-for="user in authors" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :key="user.id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :value="user.id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :label="user.name" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ></vxe-option> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </vxe-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </vxe-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <vxe-form-item title="价格" field="type" span="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <template v-slot> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <vxe-input v-model="formData.price" placeholder="请输入价格" type="number"></vxe-input> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </vxe-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <vxe-form-item title="出版日期" field="type" span="24"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <template v-slot> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <vxe-input v-model="formData.release_time" placeholder="日期类型" type="date" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </vxe-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </vxe-form> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </vxe-modal> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <!-- <vxe-pager 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      border 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      size="medium" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :loading="loading2" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :current-page="tablePage2.currentPage" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :page-size="tablePage2.pageSize" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :total="tablePage2.totalResult" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      :layouts="['PrevPage', 'JumpNumber', 'NextPage', 'FullJump', 'Sizes', 'Total']" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      @page-change="handlePageChange2" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ></vxe-pager>--> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getBook, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  postBook, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getAuthor, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  deleteBook, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  putBook, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getType, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} from "@/api/book"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name: "book-c", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      tableData: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      radioId: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      modelVisi: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      modelTitle: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      formData: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ISBN: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        author: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        name: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        price: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        release_time: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        type: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      authors: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      types: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  components: {}, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  created() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.init(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    init() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.getBookDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getAuthor().then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log("获取作者信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(res.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (res.data.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          console.log("getAuthor"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          console.log(res.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.authors = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getType().then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.types = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getBookDate() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getBook(null).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(res.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (res.data.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          console.log("getBook"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          console.log(res.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.tableData = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    radioChangeEvent(row) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log("单击事件"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log(row.rowid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.radioId = row.rowid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    addData() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log("新增按钮"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.modelVisi = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.modelTitle = "新增"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    submitEvent() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log("模态框的按钮"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log(this.formData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (this.radioId == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        postBook(this.formData).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (res.status === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.$message.success("新增图书成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.getBookDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        putBook(this.radioId, this.formData).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (res.status === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.getBookDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    deleteData() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      deleteBook(this.radioId).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (res.status === 204) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.$message.success("删除图书成功"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.getBookDate(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    updateData() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getBook(this.radioId).then((res) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (res.status === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.modelVisi = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          console.log("获取一个图书信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          console.log(res); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          let au = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          for (let v of res.data.author) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            au.push(v.author_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          res.data.author = au; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.formData = res.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    close() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log("关闭"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.radioId = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.formData = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ISBN: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        author: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        name: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        price: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        release_time: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        type: 1, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script> 
			 |