Browse Source

完成食物复制

wangyang 5 năm trước cách đây
mục cha
commit
7deb1791c3
2 tập tin đã thay đổi với 46 bổ sung3 xóa
  1. 9 0
      src/api/food.js
  2. 37 3
      src/views/food/index.vue

+ 9 - 0
src/api/food.js

@@ -224,3 +224,12 @@ export function importModifiersFromSimilarFood(id, data) {
     data
   })
 }
+
+// 复制相似食物
+export function copyFromSimilarFood(data) {
+  return request({
+    url: `/api/foods/copy-food`,
+    method: 'post',
+    data
+  })
+}

+ 37 - 3
src/views/food/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="app-container" v-loading="uploadLoading">
     <div class="filter-container">
-      <el-row>
+      <el-row style="margin-bottom: 5px">
         <el-input
           v-model="listQuery.query"
           placeholder="请输入检索词"
@@ -120,6 +120,7 @@
             </el-button>
             <el-dropdown-menu slot="dropdown">
               <el-dropdown-item :command="{row: row, command: 'update'}">更新</el-dropdown-item>
+              <el-dropdown-item :command="{row: row, command: 'copy'}">复制</el-dropdown-item>
               <el-dropdown-item :command="{row: row, command: 'manageNutrients'}">营养素关联</el-dropdown-item>
               <el-dropdown-item :command="{row: row, command: 'manageUnits'}">单位管理</el-dropdown-item>
               <el-dropdown-item :command="{row: row, command: 'manageModifiers'}">规格管理</el-dropdown-item>
@@ -161,12 +162,28 @@
         </el-button>
       </div>
     </el-dialog>
+
+    <el-dialog title="复制食物" width="40%" :visible.sync="copyDialogVisible">
+      <el-form ref="dialogForm" label-position="left" label-width="90px" style="width: 80%; margin-left:50px;">
+        <el-form-item label="新食物名称: " prop="foodName">
+          <el-input v-model="params.foodName" placeholder="请输入新食物名称" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" >
+        <el-button @click="copyDialogVisible = false">
+          取消
+        </el-button>
+        <el-button type="primary" @click="copyFood">
+          确认
+        </el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
 import Pagination from '@/components/Pagination'
-import { getList, remove } from '@/api/food'
+import { getList, remove, copyFromSimilarFood } from '@/api/food'
 import axios from 'axios'
 import { getToken } from '@/utils/auth'
 
@@ -200,7 +217,9 @@ export default {
         pageSize: 20
       },
       uploadFile: null,
-      uploadLoading: false
+      uploadLoading: false,
+      copyDialogVisible: false,
+      params: {}
     }
   },
   created() {
@@ -265,11 +284,26 @@ export default {
       fromData.append('file', file.raw)
       this.uploadFile = fromData
     },
+    handleCopy(data) {
+      this.params = { foodId: data.id }
+      this.copyDialogVisible = true
+    },
+    copyFood() {
+      copyFromSimilarFood(this.params).then(res => {
+        this.$notify.success('提交成功')
+        this.$router.push({ path: `/food/edit/${res.data}`})
+      }).catch(res => {
+        this.$message.error(res.data.message)
+      })
+    },
     handleCommand(data) {
       switch (data.command) {
         case 'update':
           this.handleUpdate(data.row)
           break
+        case 'copy':
+          this.handleCopy(data.row)
+          break
         case 'manageNutrients':
           this.manageNutrients(data.row)
           break