Procházet zdrojové kódy

Merge branch 'feature/2240-package-sort' into new-version

theo před 3 roky
rodič
revize
36a92af020

+ 1 - 1
backendApi/modules/v1/controllers/ShopController.php

@@ -255,7 +255,7 @@ class ShopController extends BaseController {
             });
         }
         $package = DeclarationPackage::findOneAsArray('ID=:ID', [':ID' => $id]);
-        return static::notice(['id' => $package['ID'], 'packageName' => $package['PACKAGE_NAME'],'packageNo' => $package['PACKAGE_NO'], 'amount' => $package['AMOUNT'], 'amountPv' => $package['PV'], 'levelId' => $package['LEVEL_ID'], 'packageContent' => $package['PACKAGE_CONTENT'],'storenums' => $package['STORE_NUMS'],'statusdate'=>$package['STATUS_DATE'],'packagedate'=>$package['PACKAGE_DATE'],'packagestatusdate'=>$package['PACKAGE_STATUS_DATE']]);
+        return static::notice(['id' => $package['ID'], 'packageName' => $package['PACKAGE_NAME'],'packageNo' => $package['PACKAGE_NO'], 'amount' => $package['AMOUNT'], 'amountPv' => $package['PV'], 'levelId' => $package['LEVEL_ID'], 'packageContent' => $package['PACKAGE_CONTENT'],'storenums' => $package['STORE_NUMS'],'statusdate'=>$package['STATUS_DATE'],'packagedate'=>$package['PACKAGE_DATE'],'packagestatusdate'=>$package['PACKAGE_STATUS_DATE'],'sort'=>$package['SORT']]);
     }
 
     /**

+ 3 - 0
backendApi/modules/v1/models/lists/shop/PackageList.php

@@ -96,6 +96,9 @@ class PackageList extends \common\libs\dataList\DataList implements DataListInte
                         'width' => '110',
                     ],
                 ],
+                'SORT' => [
+                    'header' => '排序',
+                ],
                 'STATUS_DATE' => [
                     'header' => '是否开启限时',
                     'value' => function($row) {

+ 101 - 102
backendEle/src/views/shop/package-add.vue

@@ -1,113 +1,112 @@
 <template>
-    <div v-loading="loading">
-        <div class="white-box">
-            <el-form ref="form"  label-width="250px" class="form-page">
-
-                <el-form-item label="套餐名称">
-                    <el-input v-model="form.packageName"></el-input>
-                </el-form-item>
-                <el-form-item label="套餐编号">
-                    <el-input v-model="form.packageNo"></el-input>
-                </el-form-item>
-                <el-form-item label="套餐金额">
-                    <el-input v-model="form.amount"></el-input>
-                </el-form-item>
-                <el-form-item label="套餐PV">
-                    <el-input v-model="form.amountPv"></el-input>
-                </el-form-item>
-                <el-form-item label="报单级别ID">
-                    <el-select v-model="form.levelId" placeholder="请选择报单级别">
-                        <el-option v-for="(item,index) in allDecLevel" :key="index" :label="item.LEVEL_NAME"
-                                   :value="item.ID"></el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="套餐内容">
-                    <el-input v-model="form.packageContent"></el-input>
-                </el-form-item>
-                <el-form-item label="套餐库存">
-                    <el-input oninput="value=value.replace(/[^\d]/g,'')" v-model="form.storenums"></el-input>
-                </el-form-item>
-
-
-                <el-form-item>
-                    <el-button type="primary" @click="addSubmit" :loading="submitButtonStat">添加</el-button>
-                </el-form-item>
-            </el-form>
-        </div>
+  <div v-loading="loading">
+    <div class="white-box">
+      <el-form ref="form"  label-width="250px" class="form-page">
+        <el-form-item label="套餐名称">
+          <el-input v-model="form.packageName"></el-input>
+        </el-form-item>
+        <el-form-item label="套餐编号">
+          <el-input v-model="form.packageNo"></el-input>
+        </el-form-item>
+        <el-form-item label="套餐金额">
+          <el-input v-model="form.amount"></el-input>
+        </el-form-item>
+        <el-form-item label="套餐PV">
+          <el-input v-model="form.amountPv"></el-input>
+        </el-form-item>
+        <el-form-item label="报单级别ID">
+          <el-select v-model="form.levelId" placeholder="请选择报单级别">
+            <el-option v-for="(item,index) in allDecLevel" :key="index" :label="item.LEVEL_NAME" :value="item.ID"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="套餐内容">
+          <el-input v-model="form.packageContent"></el-input>
+        </el-form-item>
+        <el-form-item label="套餐库存">
+          <el-input oninput="value=value.replace(/[^\d]/g,'')" v-model="form.storenums"></el-input>
+        </el-form-item>
+        <el-form-item label="排序">
+          <el-input oninput="value=value.replace(/[^\d]/g,'')" v-model="form.sort"></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="addSubmit" :loading="submitButtonStat">添加</el-button>
+        </el-form-item>
+      </el-form>
     </div>
+  </div>
 </template>
 
 <script>
-    import store from '@/utils/vuexStore'
-    import network from '@/utils/network'
-    import tool from '@/utils/tool'
-    import baseInfo from '../../utils/baseInfo'
-    export default {
-        name: "package-add",
+import store from '@/utils/vuexStore'
+import network from '@/utils/network'
+import tool from '@/utils/tool'
+import baseInfo from '../../utils/baseInfo'
+export default {
+  name: 'package-add',
 
-        data(){
-            return{
-                loading: false,
-                form:{
-                    packageName:'',
-                    packageNo:'',
-                    id:'',
-                    amount:'',
-                    amountPv:'',
-                    levelId:'',
-                    packageContent:'',
-                    storenums:''
-                },
-                submitButtonStat: false,
-                allDecLevel: baseInfo.decLevels(),
-            }
-        },
-        methods: {
-            addSubmit() {
-                this.submitButtonStat = true
-                let path = 'shop/package-add';
-                let postData = {
-                    id: this.form.id,
-                    packageName: this.form.packageName,
-                    packageNo: this.form.packageNo,
-                    amount: this.form.amount,
-                    amountPv: this.form.amountPv,
-                    levelId: this.form.levelId,
-                    packageContent: this.form.packageContent,
-                    storenums:this.form.storenums,
-
-                }
+  data () {
+    return {
+      loading: false,
+      form: {
+        packageName: '',
+        packageNo: '',
+        id: '',
+        amount: '',
+        amountPv: '',
+        levelId: '',
+        packageContent: '',
+        storenums: '',
+        sort: ''
+      },
+      submitButtonStat: false,
+      allDecLevel: baseInfo.decLevels()
+    }
+  },
+  methods: {
+    addSubmit () {
+      this.submitButtonStat = true
+      let path = 'shop/package-add'
+      let postData = {
+        id: this.form.id,
+        packageName: this.form.packageName,
+        packageNo: this.form.packageNo,
+        amount: this.form.amount,
+        amountPv: this.form.amountPv,
+        levelId: this.form.levelId,
+        packageContent: this.form.packageContent,
+        storenums: this.form.storenums,
+        sort: this.form.sort
+      }
 
-                return network.postData(path, postData).then(response => {
-                    console.log(response);
-                    this.$message({
-                        message: response,
-                        type: 'success'
-                    })
-                    this.submitButtonStat = false
-                    this.$router.go(-1)
-                }).catch(() => {
-                    this.submitButtonStat = false
-                })
-            },
-            handleEdit() {
-                this.dialogEditFormVisible = false
-                this.$message({
-                    message: '正在修改数据',
-                    type: 'info'
-                })
-                let path = 'finance/deal-type-edit'
-                network.postData(path, this.form).then(response => {
-                    this.$message({
-                        message: response,
-                        type: 'success'
-                    })
-                    this.getData(this.currentPage, this.pageSize)
-                }).catch(response => {
-                })
-            },
-        }
+      return network.postData(path, postData).then(response => {
+        this.$message({
+          message: response,
+          type: 'success'
+        })
+        this.submitButtonStat = false
+        this.$router.go(-1)
+      }).catch(() => {
+        this.submitButtonStat = false
+      })
+    },
+    handleEdit () {
+      this.dialogEditFormVisible = false
+      this.$message({
+        message: '正在修改数据',
+        type: 'info'
+      })
+      let path = 'finance/deal-type-edit'
+      network.postData(path, this.form).then(response => {
+        this.$message({
+          message: response,
+          type: 'success'
+        })
+        this.getData(this.currentPage, this.pageSize)
+      }).catch(response => {
+      })
     }
+  }
+}
 </script>
 
 <style scoped>

+ 273 - 284
backendEle/src/views/shop/package.vue

@@ -1,300 +1,289 @@
 <template>
-    <div v-loading="loading">
-        <div class="white-box">
-            <div class="filter-box">
-                <filter-user :filter-types="filterTypes" @select-value="handleFilterUser"></filter-user>
-            </div>
-            <el-table class="table-box" ref="multipleTable" :data="tableData" stripe style="width: 100%;"
-                      @selection-change="handleSelectionChange"
-                      :height="tool.getTableHeight()">
-              <!--  <el-table-column type="selection" width="70" v-if="tableHeaders"></el-table-column>-->
-                <el-table-column v-for="(tableHeader, key) in tableHeaders" :key="key" :label="tableHeader.header" :width="tableHeader.other.width ? tableHeader.other.width : ''" :prop="tableHeader.other.prop ? tableHeader.other.prop : null">
-                    <template slot-scope="scope">
-                        <template v-if="scope.row[tableHeader.index].other.tag" >
-                            <el-tag :type="scope.row[tableHeader.index].other.tag.type ? scope.row[tableHeader.index].other.tag.type : null" :size="scope.row[tableHeader.index].other.tag.size ? scope.row[tableHeader.index].other.tag.size : null" :class="scope.row[tableHeader.index].other.tag.class ? scope.row[tableHeader.index].other.tag.class : null" >{{scope.row[tableHeader.index].value}}</el-tag>
-                        </template>
-                        <template v-else>
-                            <div v-html="scope.row[tableHeader.index].value"></div>
-                        </template>
-                    </template>
-                </el-table-column>
-                <el-table-column fixed="right" label="操作" width="180">
-                    <template slot-scope="scope">
-                        <el-dropdown size="small" trigger="click" v-if="permission.hasPermission(`shop/package-get`)">
-                            <el-button type="primary" size="small" @click.stop="">
-                                操作该数据<i class="el-icon-arrow-down el-icon--right"></i>
-                            </el-button>
-                            <el-dropdown-menu slot="dropdown">
-                                <el-dropdown-item command="package-get" @click.native="handleEditShow(scope.row)">修改数据
-                                </el-dropdown-item>
-                                <el-dropdown-item command="del" @click.native="handleDel(scope.row.ID)"
-                                                  v-show="permission.hasPermission(`shop/goods-delete`)">删除数据
-                                </el-dropdown-item>
-                                <el-dropdown-item command="goods-edit" @click.native="handleGoodUp(scope.row.ID)">商品上架 </el-dropdown-item>
-                                <el-dropdown-item command="goods-edit" @click.native="handleGoodDown(scope.row.ID)">商品下架 </el-dropdown-item>
-                                <el-dropdown-item command="package-get" @click.native="handleEditShowGoodsTimes(scope.row)">套餐限时
-                                </el-dropdown-item>
-                            </el-dropdown-menu>
-                        </el-dropdown>
-                    </template>
-                </el-table-column>
-            </el-table>
+  <div v-loading="loading">
+    <div class="white-box">
+      <div class="filter-box">
+        <filter-user :filter-types="filterTypes" @select-value="handleFilterUser"></filter-user>
+      </div>
+      <el-table class="table-box" ref="multipleTable" :data="tableData" stripe style="width: 100%;"
+                @selection-change="handleSelectionChange"
+                :height="tool.getTableHeight()">
+        <!--  <el-table-column type="selection" width="70" v-if="tableHeaders"></el-table-column>-->
+        <el-table-column v-for="(tableHeader, key) in tableHeaders" :key="key" :label="tableHeader.header" :width="tableHeader.other.width ? tableHeader.other.width : ''" :prop="tableHeader.other.prop ? tableHeader.other.prop : null">
+          <template slot-scope="scope">
+            <template v-if="scope.row[tableHeader.index].other.tag" >
+              <el-tag :type="scope.row[tableHeader.index].other.tag.type ? scope.row[tableHeader.index].other.tag.type : null" :size="scope.row[tableHeader.index].other.tag.size ? scope.row[tableHeader.index].other.tag.size : null" :class="scope.row[tableHeader.index].other.tag.class ? scope.row[tableHeader.index].other.tag.class : null" >{{scope.row[tableHeader.index].value}}</el-tag>
+            </template>
+            <template v-else>
+              <div v-html="scope.row[tableHeader.index].value"></div>
+            </template>
+          </template>
+        </el-table-column>
+        <el-table-column fixed="right" label="操作" width="180">
+          <template slot-scope="scope">
+            <el-dropdown size="small" trigger="click" v-if="permission.hasPermission(`shop/package-get`)">
+              <el-button type="primary" size="small" @click.stop="">
+                  操作该数据<i class="el-icon-arrow-down el-icon--right"></i>
+              </el-button>
+              <el-dropdown-menu slot="dropdown">
+                <el-dropdown-item command="package-get" @click.native="handleEditShow(scope.row)">修改数据
+                </el-dropdown-item>
+                <el-dropdown-item command="del" @click.native="handleDel(scope.row.ID)"
+                                  v-show="permission.hasPermission(`shop/goods-delete`)">删除数据
+                </el-dropdown-item>
+                <el-dropdown-item command="goods-edit" @click.native="handleGoodUp(scope.row.ID)">商品上架 </el-dropdown-item>
+                <el-dropdown-item command="goods-edit" @click.native="handleGoodDown(scope.row.ID)">商品下架 </el-dropdown-item>
+                <el-dropdown-item command="package-get" @click.native="handleEditShowGoodsTimes(scope.row)">套餐限时
+                </el-dropdown-item>
+              </el-dropdown-menu>
+            </el-dropdown>
+          </template>
+        </el-table-column>
+      </el-table>
 
-            <div class="white-box-footer">
-                <el-button type="primary" size="small" @click="handlestate" icon="el-icon-plus"
-                           v-if="permission.hasPermission(`shop/package-add`)">新增套餐
-                </el-button>
-                <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange"
-                            @current-change="handleCurrentChange"></pagination>
-            </div>
-        </div>
-        <el-dialog title="修改套餐" :visible.sync="dialogEditFormVisible">
-            <el-form :model="form" label-width="250px" class="form-dialog" v-loading="dialogEditLoading">
-
-                <el-form-item label="套餐名称">
-                    <el-input v-model="form.packageName"></el-input>
-                </el-form-item>
-                <el-form-item label="套餐编号">
-                    <el-input v-model="form.packageNo"></el-input>
-                </el-form-item>
-                <el-form-item label="套餐金额">
-                    <el-input v-model="form.amount"></el-input>
-                </el-form-item>
-                <el-form-item label="套餐PV">
-                    <el-input v-model="form.amountPv"></el-input>
-                </el-form-item>
-                <el-form-item label="报单级别ID">
-                    <el-select v-model="form.levelId" placeholder="请选择报单级别">
-                        <el-option v-for="(item,index) in allDecLevel" :key="index" :label="item.LEVEL_NAME"
-                                   :value="item.ID"></el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="套餐内容">
-                    <el-input v-model="form.packageContent"></el-input>
-                </el-form-item>
-                <el-form-item label="套餐库存">
-                    <el-input oninput="value=value.replace(/[^\d]/g,'')" v-model="form.storenums"></el-input>
-                </el-form-item>
-            </el-form>
-            <div slot="footer" class="dialog-footer">
-                <el-button @click="dialogEditFormVisible = false">取 消</el-button>
-                <el-button type="primary" @click.native="handleEdit">修 改</el-button>
-            </div>
-        </el-dialog>
-
-        <el-dialog title="限时套餐" :visible.sync="dialogEditFormVisibleGoodsTimes">
-            <el-form :model="form" label-width="250px" class="form-dialog" v-loading="dialogEditLoadingGoodsTimes">
-
-               <el-form-item label="是否限时">
-                     <el-switch
-                       v-model="form.statusdate"
-                       active-value="1"
-                       inactive-value="0">
-                     </el-switch>
-               </el-form-item>
-               <transition name="el-zoom-in-top">
-               <el-form-item label="限时时间" v-show='form.statusdate==1?true:false'>
-                       <el-date-picker
-                         v-model="form.packagedate"
-                         type="datetime"
-                         placeholder="选择日期时间"
-                         value-format="timestamp"
-                         popper-class='goodsdate'>
-                       </el-date-picker>
-               </el-form-item>
-               </transition>
-               <transition name="el-zoom-in-top">
-               <el-form-item label="限时类型" v-show='form.statusdate==1?true:false'>
-
-                    <el-radio v-model="form.packagestatusdate" label="0" border>下架</el-radio>
-                    <el-radio v-model="form.packagestatusdate" label="1" border>上架</el-radio>
-               </el-form-item>
-               </transition>
+      <div class="white-box-footer">
+        <el-button type="primary" size="small" @click="handlestate" icon="el-icon-plus"
+                   v-if="permission.hasPermission(`shop/package-add`)">新增套餐
+        </el-button>
+        <pagination :total="totalCount" :page_size="pageSize" @size-change="handleSizeChange"
+                    @current-change="handleCurrentChange"></pagination>
+      </div>
+    </div>
+    <el-dialog title="修改套餐" :visible.sync="dialogEditFormVisible">
+      <el-form :model="form" label-width="250px" class="form-dialog" v-loading="dialogEditLoading">
+        <el-form-item label="套餐名称">
+          <el-input v-model="form.packageName"></el-input>
+        </el-form-item>
+        <el-form-item label="套餐编号">
+          <el-input v-model="form.packageNo"></el-input>
+        </el-form-item>
+        <el-form-item label="套餐金额">
+          <el-input v-model="form.amount"></el-input>
+        </el-form-item>
+        <el-form-item label="套餐PV">
+          <el-input v-model="form.amountPv"></el-input>
+        </el-form-item>
+        <el-form-item label="报单级别ID">
+          <el-select v-model="form.levelId" placeholder="请选择报单级别">
+            <el-option v-for="(item,index) in allDecLevel" :key="index" :label="item.LEVEL_NAME"
+                       :value="item.ID"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="套餐内容">
+          <el-input v-model="form.packageContent"></el-input>
+        </el-form-item>
+        <el-form-item label="套餐库存">
+          <el-input oninput="value=value.replace(/[^\d]/g,'')" v-model="form.storenums"></el-input>
+        </el-form-item>
+        <el-form-item label="排序">
+          <el-input oninput="value=value.replace(/[^\d]/g,'')" v-model="form.sort"></el-input>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogEditFormVisible = false">取 消</el-button>
+        <el-button type="primary" @click.native="handleEdit">修 改</el-button>
+      </div>
+    </el-dialog>
 
+    <el-dialog title="限时套餐" :visible.sync="dialogEditFormVisibleGoodsTimes">
+      <el-form :model="form" label-width="250px" class="form-dialog" v-loading="dialogEditLoadingGoodsTimes">
+        <el-form-item label="是否限时">
+          <el-switch
+           v-model="form.statusdate"
+           active-value="1"
+           inactive-value="0">
+          </el-switch>
+        </el-form-item>
+        <transition name="el-zoom-in-top">
+          <el-form-item label="限时时间" v-show='form.statusdate==1?true:false'>
+            <el-date-picker
+             v-model="form.packagedate"
+             type="datetime"
+             placeholder="选择日期时间"
+             value-format="timestamp"
+             popper-class='goodsdate'>
+            </el-date-picker>
+          </el-form-item>
+        </transition>
+        <transition name="el-zoom-in-top">
+          <el-form-item label="限时类型" v-show='form.statusdate==1?true:false'>
+            <el-radio v-model="form.packagestatusdate" label="0" border>下架</el-radio>
+            <el-radio v-model="form.packagestatusdate" label="1" border>上架</el-radio>
+          </el-form-item>
+        </transition>
 
-            </el-form>
-            <div slot="footer" class="dialog-footer">
-                <el-button @click="dialogEditFormVisibleGoodsTimes = false">取 消</el-button>
-                <el-button type="primary" @click.native="handleEdit">修 改</el-button>
-            </div>
-        </el-dialog>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="dialogEditFormVisibleGoodsTimes = false">取 消</el-button>
+        <el-button type="primary" @click.native="handleEdit">修 改</el-button>
+      </div>
+    </el-dialog>
 
-    </div>
+  </div>
 </template>
 
 <script>
-    import network from '@/utils/network'
-    import tool from '@/utils/tool'
-    import baseInfo from '@/utils/baseInfo'
-    import FilterUser from '@/components/FilterUser'
-    import permission from '@/utils/permission'
-    import Pagination from '@/components/Pagination'
-    import filterHelper from '@/utils/filterHelper'
-
-    export default {
-        name: 'package',
-        components: {FilterUser, Pagination},
-        mounted() {
-            this.getData()
-        },
-        data() {
-            return {
-                tableHeaders: null,
-                tableData: null,
-                tableHeight: window.innerHeight - 310,
-                loading: true,
-                multipleSelection: [],
-                currentPage: 1,
-                totalPages: 1,
-                totalCount: 1,
-                pageSize: 20,
-                tool: tool,
-                permission: permission,
-                baseDecLevels: baseInfo.decLevels(),
-                baseEmpLevels: baseInfo.empLevels(),
-                filterTypes: null,
-                filterModel: {},
-                dialogVisible: false,
-                dialogLoading: false,
-                statuses: null,
-                filterData: null,
-                dialogEditFormVisible: false,
-                dialogEditLoading: false,
-                dialogEditFormVisibleGoodsTimes: false,
-                dialogEditLoadingGoodsTimes: false,
-                allDecLevel: baseInfo.decLevels(),
-                form: {
-                    selectedIds: [],
-                    statusValue: [],
-                    sendType: null,
-                    remark: null,
+import network from '@/utils/network'
+import tool from '@/utils/tool'
+import baseInfo from '@/utils/baseInfo'
+import FilterUser from '@/components/FilterUser'
+import permission from '@/utils/permission'
+import Pagination from '@/components/Pagination'
+import filterHelper from '@/utils/filterHelper'
 
-                },
-            }
-        },
-        methods: {
-            handleSelectionChange(val) {
-                this.multipleSelection = val
-            },
-            handleCurrentChange(page) {
-                this.getData(page, this.pageSize)
-            },
-            handleSizeChange(pageSize) {
-                this.getData(this.currentPage, pageSize)
-            },
-            handleFilterUser(filterData) {
-                filterHelper.handleFilterUser(this, filterData)
-            },
-
-
-            handlestate(){
-                this.$router.push({path: `/shop/package-add`})
-            },
-            handleEditShow(row) {
-                this.dialogEditLoading = true
-                this.auditId = row.ID
-                this.dialogEditFormVisible = true
-                let vueObj = this
-                network.getData('shop/package-get', {id: this.auditId}).then(response => {
-                    console.log(response)
-                    vueObj.dialogEditLoading = false
-                    vueObj.form = response
-					vueObj.form.packagedate = response.packagedate*1000
-                })
-            },
-            handleEditShowGoodsTimes(row) {
-                this.dialogEditLoadingGoodsTimes = true
-                this.auditId = row.ID
-                this.dialogEditFormVisibleGoodsTimes = true
-                let vueObj = this
-                network.getData('shop/package-get', {id: this.auditId}).then(response => {
-                    console.log(response.packagedate*1000)
-                    vueObj.dialogEditLoadingGoodsTimes = false
-                    vueObj.form = response
-					vueObj.form.packagedate = response.packagedate*1000
-                })
-            },
-            handleEdit() {
-                this.dialogEditFormVisible = false
-                this.dialogEditFormVisibleGoodsTimes = false
-                this.$message({
-                    message: '正在修改数据',
-                    type: 'info'
-                })
-                let path = 'shop/package-get'
-                network.postData(path, this.form).then(response => {
-
-                    this.$message({
-                        message: response,
-                        type: 'success'
-                    })
-                    this.getData(this.currentPage, this.pageSize)
-                }).catch(response => {
-                })
-            },
-
-            handleDel(id = null) {
-                let obj = this
-                this.$confirm('确定删除选定的数据?', '提示', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
-                    type: 'warning'
-                }).then(() => {
-                    let selectedIds = []
-                    if (id === null) {
-                        for (let val of obj.multipleSelection) {
-                            selectedIds.push(val.ID)
-                        }
-                    } else {
-                        selectedIds.push(id)
-                    }
-                    return network.postData(`shop/package-delete`, {
-                        selected: selectedIds
-                    })
-                }).then(response => {
-                    this.$message({
-                        message: response,
-                        type: 'success'
-                    })
-                    obj.getData(obj.currentPage, obj.pageSize)
-                }).catch(response => {
+export default {
+  name: 'package',
+  components: {FilterUser, Pagination},
+  mounted () {
+    this.getData()
+  },
+  data () {
+    return {
+      tableHeaders: null,
+      tableData: null,
+      tableHeight: window.innerHeight - 310,
+      loading: true,
+      multipleSelection: [],
+      currentPage: 1,
+      totalPages: 1,
+      totalCount: 1,
+      pageSize: 20,
+      tool: tool,
+      permission: permission,
+      baseDecLevels: baseInfo.decLevels(),
+      baseEmpLevels: baseInfo.empLevels(),
+      filterTypes: null,
+      filterModel: {},
+      dialogVisible: false,
+      dialogLoading: false,
+      statuses: null,
+      filterData: null,
+      dialogEditFormVisible: false,
+      dialogEditLoading: false,
+      dialogEditFormVisibleGoodsTimes: false,
+      dialogEditLoadingGoodsTimes: false,
+      allDecLevel: baseInfo.decLevels(),
+      form: {
+        selectedIds: [],
+        statusValue: [],
+        sendType: null,
+        remark: null
+      }
+    }
+  },
+  methods: {
+    handleSelectionChange (val) {
+      this.multipleSelection = val
+    },
+    handleCurrentChange (page) {
+      this.getData(page, this.pageSize)
+    },
+    handleSizeChange (pageSize) {
+      this.getData(this.currentPage, pageSize)
+    },
+    handleFilterUser (filterData) {
+      filterHelper.handleFilterUser(this, filterData)
+    },
 
-                })
-            },
-            getData(page, pageSize) {
-                let filterData = this.filterModel
-                network.getPageData(this, 'shop/package', page, pageSize, filterData, response => {
-                    console.log('response')
-                    console.log(response);
-                    this.filterTypes = response.filterTypes
-                    this.allData = response
-                })
-            },
-            handleGoodUp(id){
-                console.log(id);
-                network.postData('shop/package-status',{selectedIds:id,status:1})
-                    .then(response=>{
-                        this.$message({
-                            message: response,
-                            type: 'success'
-                        })
-                        this.getData(this.currentPage, this.pageSize)
-                    })
-            },
-            handleGoodDown(id){
-                network.postData('shop/package-status',{selectedIds:id,status:0})
-                    .then(response=>{
-                        this.$message({
-                            message: response,
-                            type: 'success'
-                        })
-                        this.getData(this.currentPage, this.pageSize)
-                    })
-            }
+    handlestate () {
+      this.$router.push({path: `/shop/package-add`})
+    },
+    handleEditShow (row) {
+      this.dialogEditLoading = true
+      this.auditId = row.ID
+      this.dialogEditFormVisible = true
+      let vueObj = this
+      network.getData('shop/package-get', {id: this.auditId}).then(response => {
+        vueObj.dialogEditLoading = false
+        vueObj.form = response
+        vueObj.form.packagedate = response.packagedate * 1000
+      })
+    },
+    handleEditShowGoodsTimes (row) {
+      this.dialogEditLoadingGoodsTimes = true
+      this.auditId = row.ID
+      this.dialogEditFormVisibleGoodsTimes = true
+      let vueObj = this
+      network.getData('shop/package-get', {id: this.auditId}).then(response => {
+        vueObj.dialogEditLoadingGoodsTimes = false
+        vueObj.form = response
+        vueObj.form.packagedate = response.packagedate * 1000
+      })
+    },
+    handleEdit () {
+      this.dialogEditFormVisible = false
+      this.dialogEditFormVisibleGoodsTimes = false
+      this.$message({
+        message: '正在修改数据',
+        type: 'info'
+      })
+      let path = 'shop/package-get'
+      network.postData(path, this.form).then(response => {
+        this.$message({
+          message: response,
+          type: 'success'
+        })
+        this.getData(this.currentPage, this.pageSize)
+      }).catch(response => {
+      })
+    },
 
+    handleDel (id = null) {
+      let obj = this
+      this.$confirm('确定删除选定的数据?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        let selectedIds = []
+        if (id === null) {
+          for (let val of obj.multipleSelection) {
+            selectedIds.push(val.ID)
+          }
+        } else {
+          selectedIds.push(id)
         }
-    }
+        return network.postData(`shop/package-delete`, {
+          selected: selectedIds
+        })
+      }).then(response => {
+        this.$message({
+          message: response,
+          type: 'success'
+        })
+        obj.getData(obj.currentPage, obj.pageSize)
+      }).catch(response => {
 
+      })
+    },
+    getData (page, pageSize) {
+      let filterData = this.filterModel
+      network.getPageData(this, 'shop/package', page, pageSize, filterData, response => {
+        this.filterTypes = response.filterTypes
+        this.allData = response
+      })
+    },
+    handleGoodUp (id) {
+      network.postData('shop/package-status', {selectedIds: id, status: 1})
+        .then(response => {
+          this.$message({
+            message: response,
+            type: 'success'
+          })
+          this.getData(this.currentPage, this.pageSize)
+        })
+    },
+    handleGoodDown (id) {
+      network.postData('shop/package-status', {selectedIds: id, status: 0})
+        .then(response => {
+          this.$message({
+            message: response,
+            type: 'success'
+          })
+          this.getData(this.currentPage, this.pageSize)
+        })
+    }
+  }
+}
 </script>
 
 <style scoped>

+ 1 - 1
common/models/DeclarationPackage.php

@@ -110,7 +110,7 @@ class DeclarationPackage extends \common\components\ActiveRecord
      * @return array|\yii\db\ActiveRecord[]
      */
     public static function getAllData(){
-        return static::find()->where('IS_DEL=0 AND STATUS=1')->indexBy('ID')->orderBy('ID ASC')->asArray()->all();
+        return static::find()->where('IS_DEL=0 AND STATUS=1')->indexBy('ID')->orderBy('SORT ASC')->asArray()->all();
     }
 
     /**

+ 8 - 5
common/models/forms/DecPackageForm.php

@@ -25,6 +25,7 @@ class DecPackageForm extends Model
     public $statusdate;
     public $packagedate;
     public $packagestatusdate;
+    public $sort;
 
     /**
      * @inheritdoc
@@ -55,6 +56,7 @@ class DecPackageForm extends Model
             'levelId' => '所属报单级别',
             'packageContent' => '套餐详情',
             'storenums' => '套餐库存',
+            'sort' => '排序',
         ];
     }
 
@@ -66,8 +68,8 @@ class DecPackageForm extends Model
     {
         $parentScenarios =  parent::scenarios();
         $customScenarios = [
-            'add' => ['packageName','packageNo','amount','amountPv','levelId', 'packageContent','storenums'],
-            'edit' => ['id','packageName','packageNo','amount','amountPv', 'levelId', 'packageContent','storenums','statusdate','packagedate','packagestatusdate'],
+            'add' => ['packageName','packageNo','amount','amountPv','levelId', 'packageContent','storenums','sort'],
+            'edit' => ['id','packageName','packageNo','amount','amountPv', 'levelId', 'packageContent','storenums','statusdate','packagedate','packagestatusdate','sort'],
             'changeStatus' => ['selectedIds', 'status'],
         ];
         return array_merge($parentScenarios, $customScenarios);
@@ -101,9 +103,9 @@ class DecPackageForm extends Model
         } elseif($this->scenario == 'edit') {
             $model = DeclarationPackage::findOne(['ID'=>$this->id]);
             $model->UPDATE_ADMIN = Admin::getAdminNameById(\Yii::$app->user->id);
-            $model->UPDATED_AT = Date::nowTime();
-			$model->STATUS_DATE = $this->statusdate;
-			$model->PACKAGE_STATUS_DATE = $this->packagestatusdate;
+            $model->UPDATED_AT = Date::nowTime();
+			$model->STATUS_DATE = $this->statusdate;
+			$model->PACKAGE_STATUS_DATE = $this->packagestatusdate;
 			$model->PACKAGE_DATE = $this->packagedate / 1000;
         } else {
             $this->addError('id', '提交场景不存在');
@@ -116,6 +118,7 @@ class DecPackageForm extends Model
         $model->LEVEL_ID = $this->levelId;
         $model->PACKAGE_CONTENT = $this->packageContent;
         $model->STORE_NUMS = $this->storenums;
+        $model->SORT = $this->sort;
         if($model->save()){
             return $model;
         } else {