123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
- var Controller = {
- index: function () {
- function debounce(handle, delay) {
- let time = null;
- return function () {
- let self = this,
- arg = arguments;
- clearTimeout(time);
- time = setTimeout(function () {
- handle.apply(self, arg);
- }, delay)
- }
- }
- var companyIndex = new Vue({
- el: "#companyIndex",
- data() {
- return {
- indexData: [],
- searchKey: '',
- offset: 0,
- limit: 10,
- totalPage: 0,
- currentPage: 1,
- isAjax:false,
- }
- },
- created() {
- this.getData();
- },
- methods: {
- getData() {
- let that = this;
- that.isAjax=true
- Fast.api.ajax({
- url: 'shopro/express/index',
- loading: false,
- type: 'GET',
- data: {
- searchWhere: that.searchKey,
- offset: that.offset,
- limit: that.limit,
- }
- }, function (ret, res) {
- that.indexData = res.data.rows;
- that.totalPage = res.data.total;
- that.isAjax=false
- return false;
- }, function (ret, res) {
- that.isAjax=false;
- })
- },
- operation(type, id) {
- let that = this;
- switch (type) {
- case 'create':
- Fast.api.open("shopro/express/add", "新建", {
- callback(data) {
- if(data.data){
- that.getData();
- }
- }
- });
- break;
- case 'edit':
- parent.Fast.api.open("shopro/express/edit?ids=" + id, "编辑", {
- callback: function (data) {
- if(data.data){
- that.getData();
- }
- }
- });
- break;
- case 'del':
- let ids;
- if (id) {
- ids = id;
- } else {
- let idArr = []
- if (that.multipleSelection.length > 0) {
- that.multipleSelection.forEach(i => {
- idArr.push(i.id)
- })
- ids = idArr.join(',')
- }
- }
- if (ids) {
- that.$confirm('此操作将删除快递公司, 是否继续?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning'
- }).then(() => {
- Fast.api.ajax({
- url: 'shopro/express/del/ids/' + ids,
- loading: true,
- type: 'POST',
- }, function (ret, res) {
- that.getData();
- return false;
- })
- }).catch(() => {
- that.$message({
- type: 'info',
- message: '已取消删除'
- });
- });
- }
- break;
- case 'recycle':
- Fast.api.open('shopro/express/recyclebin', '查看回收站')
- break;
- }
- },
- handleSizeChange(val) {
- this.offset = 0
- this.limit = val;
- this.currentPage = 1;
- this.getData()
- },
- handleCurrentChange(val) {
- this.currentPage = val;
- this.offset = (val - 1) * this.limit;
- this.getData()
- },
- tableRowClassName({
- rowIndex
- }) {
- if (rowIndex % 2 == 1) {
- return 'bg-color';
- }
- return '';
- },
- tableCellClassName({
- columnIndex
- }) {
- if (columnIndex == 1 || columnIndex == 4) {
- return 'cell-left';
- }
- return '';
- },
- debounceFilter: debounce(function () {
- this.getData()
- }, 1000),
- },
- watch: {
- searchKey(newVal, oldVal) {
- if (newVal != oldVal) {
- this.offset = 0;
- this.limit = 10;
- this.currentPage = 1;
- this.debounceFilter();
- }
- },
- },
- })
- },
- add: function () {
- Controller.detailInit('add');
- },
- edit: function () {
- Controller.detailInit('edit');
- },
- detailInit: function (type) {
- function urlParmas(par) {
- let value = ""
- window.location.search.replace("?", '').split("&").forEach(i => {
- if (i.split('=')[0] == par) {
- value = JSON.parse(decodeURI(i.split('=')[1]))
- }
- })
- return value
- }
- var detailInit = new Vue({
- el: "#detailInit",
- data() {
- return {
- optType: type,
- id: urlParmas('ids'),
- detailForm: {},
- detailFormInit: {
- name: '',
- code: '',
- weigh: ''
- },
- rules: {
- name: [{
- required: true,
- message: '请输入快递公司',
- trigger: 'blur'
- }],
- code: [{
- required: true,
- message: '请输入快递编号',
- trigger: 'blur'
- }],
- }
- }
- },
- created() {
- this.detailForm = JSON.parse(JSON.stringify(this.detailFormInit));
- if (this.optType == 'edit') {
- for(key in this.detailForm){
- this.detailForm[key]=Config.row[key]
- }
- }
- },
- methods: {
- getdetailForm() {
- let that = this;
- Fast.api.ajax({
- url: 'shopro/express/edit/ids/' + that.id,
- loading: true,
- }, function (ret, res) {
- that.detailForm = res.data
- return false;
- })
- },
- submitForm(type, formName) {
- let that = this;
- if (type) {
- this.$refs[formName].validate((valid) => {
- if (valid) {
- let formData = JSON.stringify(that.detailForm);
- if (that.optType == 'edit') {
- Fast.api.ajax({
- url: 'shopro/express/edit/ids/' + that.id,
- loading: true,
- data: {
- data:formData
- }
- }, function (ret, res) {
- Fast.api.close({data:true});
- })
- } else {
- Fast.api.ajax({
- url: 'shopro/express/add',
- loading: true,
- data: {
- data:formData
- }
- }, function (ret, res) {
- Fast.api.close({data:true});
- })
- }
- } else {
- return false;
- }
- });
- } else {
- Fast.api.close({data:false});
- }
- },
- },
- })
- },
- api: {
- bindevent: function () {
- Form.api.bindevent($("form[role=form]"));
- }
- }
- };
- return Controller;
- });
|