Parcourir la source

fix 图书参数设置

Alex il y a 1 an
Parent
commit
f68fbdbf36

+ 194 - 272
src/views/recycle/booklist/index.vue

@@ -1,339 +1,261 @@
 <template>
-  <ele-page flex-table>
-    <book-search @search="reload"></book-search>
+    <ele-page flex-table>
+        <book-search @search="reload"></book-search>
 
-    <common-table
-      ref="pageRef"
-      :pageConfig="pageConfig"
-      :columns="columns"
-      :tools="false"
-    >
-      <template #toolbar>
-        <el-radio-group @change="handleStatusChange" v-model="useStatus">
-          <el-radio-button label="全部" value="0" />
-          <el-radio-button label="已加入回收书单(正在回收)" value="1" />
-          <el-radio-button label="已加入回收书单(暂停回收)" value="2" />
-          <el-radio-button label="未加入回收书单" value="3" />
-          <el-radio-button label="黑名单" value="4" />
-        </el-radio-group>
+        <common-table ref="pageRef" :pageConfig="pageConfig" :columns="columns" :tools="false">
+            <template #toolbar>
+                <el-radio-group @change="handleStatusChange" v-model="useStatus">
+                    <el-radio-button label="全部" value="0" />
+                    <el-radio-button label="已加入回收书单(正在回收)" value="1" />
+                    <el-radio-button label="已加入回收书单(暂停回收)" value="2" />
+                    <el-radio-button label="未加入回收书单" value="3" />
+                    <el-radio-button label="黑名单" value="4" />
+                </el-radio-group>
 
-        <span class="ml-8"></span>
-        <el-button
-          type="success"
-          plain
-          v-permission="'recycle:booklist:batchRemoveBooklist'"
-          @click="handleOptBooklist()"
-        >
-          移除回收书单
-        </el-button>
-        <el-button
-          type="danger"
-          plain
-          v-permission="'recycle:booklist:batchAddBooklist'"
-          @click="handleOptBooklist()"
-        >
-          加入回收书单
-        </el-button>
-        <el-button
-          type="success"
-          plain
-          v-permission="'recycle:booklist:batchRemoveBlacklist'"
-          @click="handleOptBlacklist()"
-        >
-          批量移除黑名单
-        </el-button>
-        <el-button
-          type="danger"
-          plain
-          v-permission="'recycle:booklist:batchAddBlacklist'"
-          @click="handleOptBlacklist()"
-        >
-          批量加黑名单
-        </el-button>
+                <span class="ml-8"></span>
+                <el-button type="success" plain v-permission="'recycle:booklist:batchRemoveBooklist'"
+                    @click="handleOptBooklist()">
+                    移除回收书单
+                </el-button>
+                <el-button type="danger" plain v-permission="'recycle:booklist:batchAddBooklist'"
+                    @click="handleOptBooklist()">
+                    加入回收书单
+                </el-button>
+                <el-button type="success" plain v-permission="'recycle:booklist:batchRemoveBlacklist'"
+                    @click="handleOptBlacklist()">
+                    批量移除黑名单
+                </el-button>
+                <el-button type="danger" plain v-permission="'recycle:booklist:batchAddBlacklist'"
+                    @click="handleOptBlacklist()">
+                    批量加黑名单
+                </el-button>
 
-        <el-button
-          type="warning"
-          plain
-          v-permission="'recycle:booklist:batchPauseRecycle'"
-          @click="handleOptRecycle()"
-        >
-          暂停回收
-        </el-button>
-        <el-button
-          type="success"
-          plain
-          v-permission="'recycle:booklist:batchStartRecycle'"
-          @click="handleOptRecycle()"
-        >
-          开启回收
-        </el-button>
-        <el-button
-          type="primary"
-          plain
-          v-permission="'recycle:booklist:batchAddDiscount'"
-          @click="handleAddDiscount()"
-        >
-          指定折扣加回收书单
-        </el-button>
-        <el-button
-          type="success"
-          plain
-          v-permission="'recycle:booklist:batchAddSocial'"
-          @click="handleOptType(1)"
-        >
-          加社科库
-        </el-button>
-        <el-button
-          type="success"
-          plain
-          v-permission="'recycle:booklist:batchAddTeach'"
-          @click="handleOptType(2)"
-        >
-          加教材库
-        </el-button>
-      </template>
+                <el-button type="warning" plain v-permission="'recycle:booklist:batchPauseRecycle'"
+                    @click="handleOptRecycle()">
+                    暂停回收
+                </el-button>
+                <el-button type="success" plain v-permission="'recycle:booklist:batchStartRecycle'"
+                    @click="handleOptRecycle()">
+                    开启回收
+                </el-button>
+                <el-button type="primary" plain v-permission="'recycle:booklist:batchAddDiscount'"
+                    @click="handleAddDiscount()">
+                    指定折扣加回收书单
+                </el-button>
+                <el-button type="success" plain v-permission="'recycle:booklist:batchAddSocial'"
+                    @click="handleOptType(1)">
+                    加社科库
+                </el-button>
+                <el-button type="success" plain v-permission="'recycle:booklist:batchAddTeach'"
+                    @click="handleOptType(2)">
+                    加教材库
+                </el-button>
+            </template>
 
-      <template #cover="{ row }">
-        <el-image
-          style="width: 90px; height: 120px; border-radius: 4px"
-          fit="cover"
-          :src="row.cover"
-        />
-      </template>
-      <template #baseInfo="{ row }">
-        <div class="flex justify-start items-center">
-          <div style="flex: 2">
-            <book-info :row="row"></book-info>
-          </div>
-          <div style="flex: 1.5; margin-left: 15px">
-            <book-other-info :row="row"></book-other-info>
-          </div>
-        </div>
-      </template>
-      <template #stock="{ row }">
-        <book-stock :row="row"></book-stock>
-      </template>
+            <template #cover="{ row }">
+                <el-image style="width: 90px; height: 120px; border-radius: 4px" fit="cover" :src="row.cover" />
+            </template>
+            <template #baseInfo="{ row }">
+                <div class="flex justify-start items-center">
+                    <div style="flex: 2">
+                        <book-info :row="row"></book-info>
+                    </div>
+                    <div style="flex: 1.5; margin-left: 15px">
+                        <book-other-info :row="row"></book-other-info>
+                    </div>
+                </div>
+            </template>
+            <template #stock="{ row }">
+                <book-stock :row="row"></book-stock>
+            </template>
 
-      <template #action="{ row }">
-        <el-button
-          type="primary"
-          link
-          v-permission="'recycle:booklist:updateBook'"
-          @click="handleUpdateBook(row)"
-        >
-          [编辑]
-        </el-button>
-        <el-button
-          color="#192bbe"
-          plain
-          link
-          v-permission="'recycle:booklist:setParams'"
-          @click="handleSetParams(row)"
-        >
-          [设置独立参数]
-        </el-button>
-        <el-button
-          type="warning"
-          link
-          v-permission="'recycle:booklist:addBlacklist'"
-          @click="handleOptBlacklist(row)"
-        >
-          [加入黑名单]
-        </el-button>
-        <el-button
-          type="success"
-          link
-          v-permission="'recycle:booklist:removeBlacklist'"
-          @click="handleOptBlacklist(row)"
-        >
-          [移除黑名单]
-        </el-button>
-        <el-button
-          type="danger"
-          link
-          v-permission="'recycle:booklist:pauseRecycle'"
-          @click="handleOptRecycle(row)"
-        >
-          [暂停回收]
-        </el-button>
-        <el-button
-          type="success"
-          link
-          v-permission="'recycle:booklist:startRecycle'"
-          @click="handleOptRecycle(row)"
-        >
-          [开启回收]
-        </el-button>
-        <el-button
-          type="success"
-          link
-          v-permission="'recycle:booklist:removeBooklist'"
-          @click="handleOptBooklist(row)"
-        >
-          [移除回收书单]
-        </el-button>
-        <el-button
-          type="danger"
-          link
-          v-permission="'recycle:booklist:addBooklist'"
-          @click="handleOptBooklist(row)"
-        >
-          [加入回收书单]
-        </el-button>
-      </template>
-    </common-table>
+            <template #action="{ row }">
+                <el-button type="primary" link v-permission="'recycle:booklist:updateBook'"
+                    @click="handleUpdateBook(row)">
+                    [编辑]
+                </el-button>
+                <el-button color="#192bbe" plain link v-permission="'recycle:booklist:setParams'"
+                    @click="handleSetParams(row)">
+                    [设置独立参数]
+                </el-button>
+                <el-button type="warning" link v-permission="'recycle:booklist:addBlacklist'"
+                    @click="handleOptBlacklist(row)">
+                    [加入黑名单]
+                </el-button>
+                <el-button type="success" link v-permission="'recycle:booklist:removeBlacklist'"
+                    @click="handleOptBlacklist(row)">
+                    [移除黑名单]
+                </el-button>
+                <el-button type="danger" link v-permission="'recycle:booklist:pauseRecycle'"
+                    @click="handleOptRecycle(row)">
+                    [暂停回收]
+                </el-button>
+                <el-button type="success" link v-permission="'recycle:booklist:startRecycle'"
+                    @click="handleOptRecycle(row)">
+                    [开启回收]
+                </el-button>
+                <el-button type="success" link v-permission="'recycle:booklist:removeBooklist'"
+                    @click="handleOptBooklist(row)">
+                    [移除回收书单]
+                </el-button>
+                <el-button type="danger" link v-permission="'recycle:booklist:addBooklist'"
+                    @click="handleOptBooklist(row)">
+                    [加入回收书单]
+                </el-button>
+            </template>
+        </common-table>
 
-    <books-edit ref="editRef"></books-edit>
-    <set-params ref="paramsRef"></set-params>
-  </ele-page>
+        <books-edit ref="editRef"></books-edit>
+        <set-params ref="paramsRef"></set-params>
+    </ele-page>
 </template>
 
 <script setup>
-  import { ref, reactive } from 'vue';
-  import CommonTable from '@/components/CommonPage/CommonTable.vue';
-  import booksEdit from '@/views/data/books/components/books-edit.vue';
-  import bookSearch from '@/views/recycle/components/book-search.vue';
-  import bookInfo from '@/views/recycle/components/book-info.vue';
-  import bookOtherInfo from '@/views/recycle/components/book-other-info.vue';
-  import bookStock from '@/views/recycle/components/book-stock.vue';
-  import setParams from '@/views/recycle/components/set-params.vue';
-  import { useDictData } from '@/utils/use-dict-data';
+import { ref, reactive } from 'vue';
+import CommonTable from '@/components/CommonPage/CommonTable.vue';
+import booksEdit from '@/views/data/books/components/books-edit.vue';
+import bookSearch from '@/views/recycle/components/book-search.vue';
+import bookInfo from '@/views/recycle/components/book-info.vue';
+import bookOtherInfo from '@/views/recycle/components/book-other-info.vue';
+import bookStock from '@/views/recycle/components/book-stock.vue';
+import setParams from '@/views/recycle/components/set-params.vue';
+import { useDictData } from '@/utils/use-dict-data';
 
-  defineOptions({ name: 'recycleBooklist' });
-  const [useStatusDicts] = useDictData(['use_status']);
+defineOptions({ name: 'recycleBooklist' });
+const [useStatusDicts] = useDictData(['use_status']);
 
-  const useStatus = ref('0');
-  function handleStatusChange(value) {
+const useStatus = ref('0');
+function handleStatusChange(value) {
     pageRef.value.reload({ useStatus: value });
-  }
+}
 
-  /** 表格列配置 */
-  const columns = ref([
+/** 表格列配置 */
+const columns = ref([
     {
-      type: 'selection',
-      columnKey: 'selection',
-      width: 50,
-      align: 'center',
-      fixed: 'left'
+        type: 'selection',
+        columnKey: 'selection',
+        width: 50,
+        align: 'center',
+        fixed: 'left'
     },
     {
-      label: '图片',
-      prop: 'cover',
-      width: 120,
-      slot: 'cover'
+        label: '图片',
+        prop: 'cover',
+        width: 120,
+        slot: 'cover'
     },
     {
-      label: '信息',
-      prop: 'baseInfo',
-      width: 540,
-      slot: 'baseInfo'
+        label: '信息',
+        prop: 'baseInfo',
+        width: 540,
+        slot: 'baseInfo'
     },
     {
-      label: '回收折扣',
-      prop: 'discount',
-      sortable: true,
-      columnKey: 'discount'
+        label: '回收折扣',
+        prop: 'discount',
+        sortable: true,
+        columnKey: 'discount'
     },
     { label: '回收价格', prop: 'price', sortable: true, columnKey: 'price' },
     {
-      label: '最大回收量',
-      prop: 'maxRecycledAmount',
-      sortable: true,
-      columnKey: 'maxRecycledAmount'
+        label: '最大回收量',
+        prop: 'maxRecycledAmount',
+        sortable: true,
+        columnKey: 'maxRecycledAmount'
     },
     {
-      label: '总回收数量',
-      prop: 'totalRecycledAmount',
-      sortable: true,
-      columnKey: 'totalRecycledAmount'
+        label: '总回收数量',
+        prop: 'totalRecycledAmount',
+        sortable: true,
+        columnKey: 'totalRecycledAmount'
     },
     {
-      label: '当前剩余回收量',
-      prop: 'remainingRecycledAmount',
-      sortable: true,
-      columnKey: 'remainingRecycledAmount'
+        label: '当前剩余回收量',
+        prop: 'remainingRecycledAmount',
+        sortable: true,
+        columnKey: 'remainingRecycledAmount'
     },
     {
-      label: '销量',
-      prop: 'salesVolume',
-      sortable: true,
-      columnKey: 'salesVolume'
+        label: '销量',
+        prop: 'salesVolume',
+        sortable: true,
+        columnKey: 'salesVolume'
     },
     {
-      label: '库存',
-      prop: 'stock',
-      sortable: true,
-      columnKey: 'stock',
-      slot: 'stock'
+        label: '库存',
+        prop: 'stock',
+        sortable: true,
+        columnKey: 'stock',
+        slot: 'stock'
     },
     {
-      columnKey: 'action',
-      label: '操作',
-      width: 150,
-      slot: 'action',
-      fixed: 'right'
+        columnKey: 'action',
+        label: '操作',
+        width: 150,
+        slot: 'action',
+        fixed: 'right'
     }
-  ]);
+]);
 
-  /** 页面组件实例 */
-  const pageRef = ref(null);
+/** 页面组件实例 */
+const pageRef = ref(null);
 
-  const pageConfig = reactive({
+const pageConfig = reactive({
     pageUrl: '/book/bookInfo/list',
     fileName: '回收书单管理',
     cacheKey: 'recycleBooklistTable'
-  });
+});
 
-  //刷新表格
-  function reload(where) {
+//刷新表格
+function reload(where) {
     pageRef.value?.reload(where);
-  }
+}
 
-  //编辑
-  const editRef = ref(null);
-  function handleUpdateBook(row) {
+//编辑
+const editRef = ref(null);
+function handleUpdateBook(row) {
     editRef.value?.handleOpen(row);
-  }
-  //设置参数
-  const paramsRef = ref(null);
-  function handleSetParams(row) {
+}
+//设置参数
+const paramsRef = ref(null);
+function handleSetParams(row) {
     paramsRef.value?.handleOpen(row);
-  }
+}
 
-  //回收书单操作
-  function handleOptBooklist(row) {
+//回收书单操作
+function handleOptBooklist(row) {
     let selections = row ? [row] : pageRef.value?.getSelections();
     let ids = selections.map((item) => item.id).join(',');
     let url = `/book/bookInfo/removeById/${ids}`;
     let title = row ? '确认移除回收书单?' : '确认加入回收书单?';
     pageRef.value?.operatBatch({ title, method: 'post', url, row });
-  }
-  //黑名单操作
-  function handleOptBlacklist(row) {
+}
+//黑名单操作
+function handleOptBlacklist(row) {
     let selections = row ? [row] : pageRef.value?.getSelections();
     let ids = selections.map((item) => item.id).join(',');
     let url = `/book/bookInfo/removeBlacklist/${ids}`;
     let title = row ? '确认移除黑名单?' : '确认加入黑名单?';
     pageRef.value?.operatBatch({ title, method: 'post', url, row });
-  }
-  //回收操作
-  function handleOptRecycle(row) {
+}
+//回收操作
+function handleOptRecycle(row) {
     let selections = row ? [row] : pageRef.value?.getSelections();
     let ids = selections.map((item) => item.id).join(',');
     let url = `/book/bookInfo/recycle/${ids}`;
     let title = '确认回收?';
     pageRef.value?.operatBatch({ title, method: 'post', url, row });
-  }
-  //类型操作
-  function handleOptType(type) {
+}
+//类型操作
+function handleOptType(type) {
     let selections = pageRef.value?.getSelections();
     let ids = selections.map((item) => item.id).join(',');
     let url = `/book/bookInfo/changeType/${ids}`;
     let title = type == 1 ? '确认加社科库?' : '确认加教材库?';
     pageRef.value?.operatBatch({ title, method: 'post', url, row });
-  }
-  //指定折扣
-  function handleAddDiscount(){
-    
-  }
+}
+//指定折扣
+function handleAddDiscount() {
+
+}
 </script>

+ 63 - 58
src/views/recycle/globalParameter/components/has-add-recycle-booklist.vue

@@ -1,65 +1,70 @@
 <template>
-  <el-form :model="form" class="common-form" label-width="auto" :rules="rules">
-    <el-form-item label="回收折扣:" prop="dayOrderNum">
-      <ele-input
-        v-model="form.dayOrderNum"
-        placeholder="请输入"
-        clearable
-        suffixStr="折"
-      />
-    </el-form-item>
-    <el-form-item label="最大回收量:" prop="dayOrderTotal">
-      <ele-input
-        v-model="form.dayOrderTotal"
-        placeholder="请输入"
-        suffixStr="本"
-        clearable
-      />
-    </el-form-item>
-    <el-form-item label="单个订单回收数量:" prop="mobile">
-      <ele-input
-        v-model="form.mobile"
-        placeholder="请输入"
-        clearable
-        suffixStr="本"
-      />
-    </el-form-item>
-    <el-form-item>
-      <el-button type="success" style="width: 100px" plain @click="onSubmit"
-        >保存</el-button
-      >
-    </el-form-item>
-  </el-form>
+    <el-form :model="form" class="common-form" label-width="auto" :rules="rules">
+        <el-form-item label="回收折扣:" prop="inListDiscount">
+            <ele-input v-model="form.inListDiscount" placeholder="请输入" clearable suffixStr="折" />
+        </el-form-item>
+        <el-form-item label="最大回收量:" prop="inListMax">
+            <ele-input v-model="form.inListMax" placeholder="请输入" suffixStr="本" clearable />
+        </el-form-item>
+        <el-form-item label="回收折扣小于 1(折)   单个订单回收数量:" prop="inListPerMaxLt1">
+            <ele-input v-model="form.inListPerMaxLt1" placeholder="请输入" clearable suffixStr="本" />
+        </el-form-item>
+        <el-form-item label="回收折扣大于等于 1(折)   单个订单回收数量:" prop="inListPerMaxGe1">
+            <ele-input v-model="form.inListPerMaxGe1" placeholder="请输入" clearable suffixStr="本" />
+        </el-form-item>
+        <el-form-item label="销量大于等于 100(本)   单个订单回收数量:" prop="inListSalesGe100">
+            <ele-input v-model="form.inListSalesGe100" placeholder="请输入" clearable suffixStr="本" />
+        </el-form-item>
+        <el-form-item>
+            <el-button type="success" style="width: 100px" plain @click="onSubmit">保存</el-button>
+        </el-form-item>
+    </el-form>
 </template>
 
-<script lang="ts" setup>
-  import { reactive } from 'vue';
-  import EleInput from '@/components/CommonPage/EleInput.vue';
+<script setup>
+import { reactive, watch } from 'vue';
+import EleInput from '@/components/CommonPage/EleInput.vue';
+import { ElMessage } from 'element-plus';
+import request from '@/utils/request';
 
-  const form = reactive({
-    dayOrderNum: '',
-    dayOrderTotal: '',
-    mobile: ''
-  });
+const props = defineProps({
+    settings: {
+        type: Object,
+        default: () => ({})
+    }
+});
 
-  const rules = reactive({
-    dayOrderNum: [
-      {
-        required: true,
-        message: '请输入每人每日申请恢复订单限量',
-        trigger: 'blur'
-      }
-    ],
-    dayOrderTotal: [
-      {
-        required: true,
-        message: '请输入每日申请恢复订单总限量',
-        trigger: 'blur'
-      }
-    ]
-  });
+const form = reactive({
+    inListDiscount: '',
+    inListMax: '',
+    inListPerMaxLt1: '',
+    inListPerMaxGe1: '',
+    inListSalesGe100: ''
+});
 
-  const onSubmit = () => {
-    console.log('submit!');
-  };
+watch(() => props.settings, (newVal) => {
+    if (newVal) {
+        form.inListDiscount = newVal.inListDiscount
+        form.inListMax = newVal.inListMax
+        form.inListPerMaxLt1 = newVal.inListPerMaxLt1
+        form.inListPerMaxGe1 = newVal.inListPerMaxGe1
+        form.inListSalesGe100 = newVal.inListSalesGe100
+    }
+}, { deep: true, immediate: true })
+
+const onSubmit = () => {
+    request.post('/recycle/manage/overall/update/in', {
+        inListDiscount: form.inListDiscount,
+        inListMax: form.inListMax,
+        inListPerMaxLt1: form.inListPerMaxLt1,
+        inListPerMaxGe1: form.inListPerMaxGe1,
+        inListSalesGe100: form.inListSalesGe100
+    }).then(res => {
+        if (res.data.code === 200) {
+            ElMessage.success('保存成功');
+        } else {
+            ElMessage.error(res.data.msg)
+        }
+    });
+};
 </script>

+ 52 - 58
src/views/recycle/globalParameter/components/not-add-recycle-booklist.vue

@@ -1,65 +1,59 @@
 <template>
-  <el-form :model="form" class="common-form" label-width="auto" :rules="rules">
-    <el-form-item label="回收折扣:" prop="dayOrderNum">
-      <ele-input
-        v-model="form.dayOrderNum"
-        placeholder="请输入"
-        clearable
-        suffixStr="折"
-      />
-    </el-form-item>
-    <el-form-item label="最大回收量:" prop="dayOrderTotal">
-      <ele-input
-        v-model="form.dayOrderTotal"
-        placeholder="请输入"
-        suffixStr="本"
-        clearable
-      />
-    </el-form-item>
-    <el-form-item label="单个订单回收数量:" prop="mobile">
-      <ele-input
-        v-model="form.mobile"
-        placeholder="请输入"
-        clearable
-        suffixStr="本"
-      />
-    </el-form-item>
-    <el-form-item>
-      <el-button type="success" style="width: 100px" plain @click="onSubmit"
-        >保存</el-button
-      >
-    </el-form-item>
-  </el-form>
+    <el-form :model="form" class="common-form" label-width="auto">
+        <el-form-item label="回收折扣:">
+            <ele-input v-model="form.notInListDiscount" placeholder="请输入" clearable suffixStr="折" />
+        </el-form-item>
+        <el-form-item label="最大回收量:">
+            <ele-input v-model="form.notInListMax" placeholder="请输入" suffixStr="本" clearable />
+        </el-form-item>
+        <el-form-item label="单个订单回收数量:">
+            <ele-input v-model="form.notInListPerMax" placeholder="请输入" clearable suffixStr="本" />
+        </el-form-item>
+        <el-form-item>
+            <el-button type="success" style="width: 100px" plain @click="onSubmit">保存</el-button>
+        </el-form-item>
+    </el-form>
 </template>
 
-<script lang="ts" setup>
-  import { reactive } from 'vue';
-  import EleInput from '@/components/CommonPage/EleInput.vue';
+<script setup>
+import { reactive, watch } from 'vue';
+import EleInput from '@/components/CommonPage/EleInput.vue';
+import { ElMessage } from 'element-plus';
+import request from '@/utils/request';
 
-  const form = reactive({
-    dayOrderNum: '',
-    dayOrderTotal: '',
-    mobile: ''
-  });
+const props = defineProps({
+    settings: {
+        type: Object,
+        default: () => ({})
+    }
+});
 
-  const rules = reactive({
-    dayOrderNum: [
-      {
-        required: true,
-        message: '请输入每人每日申请恢复订单限量',
-        trigger: 'blur'
-      }
-    ],
-    dayOrderTotal: [
-      {
-        required: true,
-        message: '请输入每日申请恢复订单总限量',
-        trigger: 'blur'
-      }
-    ],
-  });
+const form = reactive({
+    notInListDiscount: '',
+    notInListMax: '',
+    notInListPerMax: ''
+});
 
-  const onSubmit = () => {
-    console.log('submit!');
-  };
+watch(() => props.settings, (newVal) => {
+    if (newVal) {
+        form.notInListDiscount = newVal.notInListDiscount
+        form.notInListMax = newVal.notInListMax
+        form.notInListPerMax = newVal.notInListPerMax
+    }
+}, { deep: true, immediate: true })
+
+
+const onSubmit = () => {
+    request.post('/recycle/manage/overall/update/notIn', {
+        notInListDiscount: form.notInListDiscount,
+        notInListMax: form.notInListMax,
+        notInListPerMax: form.notInListPerMax
+    }).then(res => {
+        if (res.data.code === 200) {
+            ElMessage.success('保存成功');
+        } else {
+            ElMessage.error(res.data.msg)
+        }
+    });
+};
 </script>

+ 20 - 2
src/views/recycle/globalParameter/index.vue

@@ -3,17 +3,35 @@
     <ele-card flex-table>
       <div class="common-section mb-4">
         <div class="common-title mb-4">未加入回收书单全局参数设置</div>
-        <not-add-recycle-booklist />
+        <not-add-recycle-booklist :settings="settings" />
       </div>
       <div class="common-section mb-4">
         <div class="common-title mb-4">已加入回收书单全局参数设置</div>
-        <has-add-recycle-booklist />
+        <has-add-recycle-booklist :settings="settings" />
       </div>
     </ele-card>
   </ele-page>
 </template>
 
 <script setup>
+  import { getCurrentInstance, ref } from 'vue';
   import notAddRecycleBooklist from '@/views/recycle/globalParameter/components/not-add-recycle-booklist.vue';
   import hasAddRecycleBooklist from '@/views/recycle/globalParameter/components/has-add-recycle-booklist.vue';
+  import { ElMessage } from 'element-plus';
+
+  let { proxy } = getCurrentInstance();
+
+  //获取当前设置
+  const settings = ref({})
+  function getSettings() {
+      proxy.$http.get('/recycle/manage/overall/get').then((res) => {
+          if(res.data.code === 200){
+              settings.value = res.data.data
+          }else{
+              ElMessage.error(res.data.msg)
+          }
+      });
+  }
+
+  getSettings()
 </script>

+ 20 - 1
src/views/recycle/independentParameter/index.vue

@@ -3,12 +3,31 @@
     <ele-card flex-table>
       <div class="common-section mb-4">
         <div class="common-title mb-4">已加入回收书单全局参数设置</div>
-        <has-add-recycle-booklist />
+        <has-add-recycle-booklist :settings="settings" />
       </div>
     </ele-card>
   </ele-page>
 </template>
 
 <script setup>
+  import { getCurrentInstance, ref } from 'vue';
   import hasAddRecycleBooklist from '@/views/recycle/globalParameter/components/has-add-recycle-booklist.vue';
+
+  let { proxy } = getCurrentInstance();
+
+  defineOptions({ name: 'independentParameter' });
+
+  //获取当前设置
+  const settings = ref({})
+  function getSettings() {
+      proxy.$http.get('/recycle/manage/overall/get').then((res) => {
+          if(res.data.code === 200){
+              settings.value = res.data.data
+          }else{
+              ElMessage.error(res.data.msg)
+          }
+      });
+  }
+
+  getSettings()
 </script>

+ 40 - 29
src/views/recycle/orderSetting/components/auto-audit-settings.vue

@@ -1,36 +1,47 @@
 <template>
-  <el-form :model="form" class="common-form" label-width="auto">
-    <el-form-item label="" prop="maxMoney">
-      <div class="flex w-full">
-        <ele-text>自动初审最大金额 </ele-text>
-        <el-input
-          v-model="form.maxMoney"
-          placeholder="请输入"
-          style="width: 120px; margin: 0 10px"
-        ></el-input>
-        <ele-text>元</ele-text>
-        <el-button
-          type="success"
-          style="width: 100px; margin-left: 20px"
-          plain
-          @click="onSubmit"
-          >保存</el-button
-        >
-      </div>
-    </el-form-item>
-  </el-form>
+    <el-form :model="form" class="common-form" label-width="auto">
+        <el-form-item label="" prop="maxMoney">
+            <div class="flex w-full">
+                <ele-text>自动初审最大金额 </ele-text>
+                <el-input v-model="form.maxMoney" placeholder="请输入" style="width: 120px; margin: 0 10px"></el-input>
+                <ele-text>元</ele-text>
+                <el-button type="success" style="width: 100px; margin-left: 20px" plain @click="onSubmit">保存</el-button>
+            </div>
+        </el-form-item>
+    </el-form>
 </template>
 
-<script lang="ts" setup>
-  import { reactive } from 'vue';
-  import EleInput from '@/components/CommonPage/EleInput.vue';
-  import request from '@/utils/request';
+<script setup>
+import { reactive, watch } from 'vue';
+import { ElMessage } from 'element-plus';
+import request from '@/utils/request';
 
-  const form = reactive({
+const props = defineProps({
+    settings: {
+        type: Object,
+        default: () => ({})
+    }
+});
+
+const form = reactive({
     maxMoney: ''
-  });
+});
+
+watch(() => props.settings, (newVal) => {
+    if (newVal) {
+        form.maxMoney = newVal.autoFirstAuditMaxMoney;
+    }
+}, { immediate: true, deep: true });
 
-  const onSubmit = () => {
-    console.log('submit!');
-  };
+const onSubmit = () => {
+    request.post('/recycle/manage/overall/update/autoFirstAudit', {
+        maxMoney: form.maxMoney
+    }).then(res => {
+        if (res.data.code === 200) {
+            ElMessage.success('保存成功');
+        } else {
+            ElMessage.error(res.data.msg)
+        }
+    });
+};
 </script>

+ 66 - 68
src/views/recycle/orderSetting/components/auto-cancel-order.vue

@@ -1,76 +1,74 @@
 <template>
-  <el-form :model="form" class="common-form" label-width="auto" :rules="rules">
-    <el-form-item label="已扫码-待提交:" prop="dayOrderNum">
-      <div class="flex items-center">
-        <el-checkbox v-model="form.checked1" label="开启" />
-        <ele-text class="ml-6">
-          待提交状态的订单,在距离最后一次扫码
-          <el-input
-            v-model="form.dayOrderNum"
-            placeholder="请输入"
-            clearable
-            style="width: 100px"
-          />
-          小时后,系统自动取消订单。
-        </ele-text>
-        <ele-text type="info" class="ml-6">取消后不可恢复订单</ele-text>
-      </div>
-    </el-form-item>
-    <el-form-item label=" 已初审-待上门取件:" prop="dayOrderTotal">
-      <div class="flex items-center">
-        <el-checkbox v-model="form.checked2" label="开启" />
-        <ele-text class="ml-6">
-          待上门取件的订单,路由信息
-          <el-input
-            v-model="form.dayOrderTotal"
-            placeholder="请输入"
-            clearable
-            style="width: 100px"
-          />
-          天未更新时,系统自动取消回收订单。
-        </ele-text>
-        <ele-text type="info" class="ml-6">取消后3个月内可恢复订单</ele-text>
-      </div>
-    </el-form-item>
+    <el-form :model="form" class="common-form" label-width="auto">
+        <el-form-item label="已扫码-待提交:">
+            <div class="flex items-center">
+                <el-checkbox v-model="form.submitSwitch" :true-label="1" :false-label="0">开启</el-checkbox>
+                <ele-text class="ml-6">
+                    待提交状态的订单,在距离最后一次扫码
+                    <el-input v-model="form.submitHours" placeholder="请输入" clearable style="width: 100px" />
+                    小时后,系统自动取消订单。
+                </ele-text>
+                <ele-text type="info" class="ml-6">取消后不可恢复订单</ele-text>
+            </div>
+        </el-form-item>
+        <el-form-item label="已初审-待上门取件:">
+            <div class="flex items-center">
+                <el-checkbox v-model="form.pickUpSwitch" :true-label="1" :false-label="0">开启</el-checkbox>
+                <ele-text class="ml-6">
+                    待上门取件的订单,路由信息
+                    <el-input v-model="form.pickUpDays" placeholder="请输入" clearable style="width: 100px" />
+                    天未更新时,系统自动取消回收订单。
+                </ele-text>
+                <ele-text type="info" class="ml-6">取消后3个月内可恢复订单</ele-text>
+            </div>
+        </el-form-item>
 
-    <el-form-item>
-      <el-button type="success" style="width: 100px" plain @click="onSubmit"
-        >保存</el-button
-      >
-    </el-form-item>
-  </el-form>
+        <el-form-item>
+            <el-button type="success" style="width: 100px" plain @click="onSubmit">保存</el-button>
+        </el-form-item>
+    </el-form>
 </template>
 
-<script lang="ts" setup>
-  import { reactive } from 'vue';
-  import EleInput from '@/components/CommonPage/EleInput.vue';
+<script setup>
+import { reactive, watch } from 'vue';
+import { ElMessage } from 'element-plus';
+import request from '@/utils/request';
 
-  const form = reactive({
-    dayOrderNum: '',
-    dayOrderTotal: '',
-    mobile: '',
-    checked1: true,
-    checked2: false
-  });
+const props = defineProps({
+    settings: {
+        type: Object,
+        default: () => ({})
+    }
+});
 
-  const rules = reactive({
-    dayOrderNum: [
-      {
-        required: true,
-        message: '请输入每人每日申请恢复订单限量',
-        trigger: 'blur'
-      }
-    ],
-    dayOrderTotal: [
-      {
-        required: true,
-        message: '请输入每日申请恢复订单总限量',
-        trigger: 'blur'
-      }
-    ],
-  });
+const form = reactive({
+    submitSwitch: 0,
+    submitHours: '',
+    pickUpSwitch: 0,
+    pickUpDays: ''
+});
 
-  const onSubmit = () => {
-    console.log('submit!');
-  };
+watch(() => props.settings, (newVal) => {
+    if (newVal) {
+        form.submitSwitch = newVal.autoCancelSubmitSwitch;
+        form.submitHours = newVal.autoCancelSubmitHours;
+        form.pickUpSwitch = newVal.autoCancelPickUpSwitch;
+        form.pickUpDays = newVal.autoCancelPickUpDays;
+    }
+}, { immediate: true, deep: true });
+
+const onSubmit = () => {
+    request.post('/recycle/manage/overall/update/autoCancel', {
+        submitSwitch: form.submitSwitch,
+        submitHours: form.submitHours,
+        pickUpSwitch: form.pickUpSwitch,
+        pickUpDays: form.pickUpDays
+    }).then(res => {
+        if (res.data.code === 200) {
+            ElMessage.success('保存成功');
+        } else {
+            ElMessage.error(res.data.msg)
+        }   
+    });
+};
 </script>

+ 46 - 47
src/views/recycle/orderSetting/components/not-supported-area.vue

@@ -1,58 +1,57 @@
 <template>
-  <el-form :model="form" class="common-form" label-width="auto">
-    <el-form-item label="省份:" prop="area">
-      <div class="flex w-full">
-        <el-select
-          v-model="form.area"
-          multiple
-          placeholder="请选择"
-          filterable
-          style="width: 70%"
-        >
-          <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.district"
-            :value="item.id"
-          />
-        </el-select>
-        <el-button
-          type="success"
-          style="width: 100px; margin-left: 20px"
-          plain
-          @click="onSubmit"
-          >保存</el-button
-        >
-      </div>
-    </el-form-item>
-  </el-form>
+    <el-form :model="form" class="common-form" label-width="auto">
+        <el-form-item label="省份:" prop="area">
+            <div class="flex w-full">
+                <el-select v-model="form.area" multiple placeholder="请选择" filterable style="width: 70%">
+                    <el-option v-for="item in options" :key="item.value" :label="item.district" :value="item.id" />
+                </el-select>
+                <el-button type="success" style="width: 100px; margin-left: 20px" plain @click="onSubmit">保存</el-button>
+            </div>
+        </el-form-item>
+    </el-form>
 </template>
 
-<script lang="ts" setup>
-  import { reactive } from 'vue';
-  import EleInput from '@/components/CommonPage/EleInput.vue';
-  import { ElMessage } from 'element-plus';
-  import request from '@/utils/request';
+<script setup>
+import { reactive, ref, watch } from 'vue';
+import { ElMessage } from 'element-plus';
+import request from '@/utils/request';
 
-  const form = reactive({
+const props = defineProps({
+    settings: {
+        type: Object,
+        default: () => ({})
+    }
+});
+
+const form = reactive({
     area: []
-  });
+});
 
-  const options = ref([]);
-  function getProviceList(id = 1) {
+const options = ref([]);
+function getProviceList(id = 1) {
     request.get(`/baseinfo/districtInfo/findInfo/${id}`).then((res) => {
-      options.value = res.data.data;
+        if (res.data.code === 200) {
+            options.value = res.data.data;
+        }
     });
-  }
-  getProviceList();
+}
+getProviceList();
+
+watch(() => props.settings, (newVal) => {
+    if (newVal) {
+        form.area = newVal.unsupportedOrderIds || [];
+    }
+}, { immediate: true, deep: true });
 
-  const onSubmit = () => {
-    request
-      .post(`/recycle/manage/unsupported/refund/update`, {
+const onSubmit = () => {
+    request.post('/recycle/manage/unsupported/refund/update', {
         provinceIds: form.area
-      })
-      .then((res) => {
-        ElMessage.success('保存成功');
-      });
-  };
+    }).then(res => {
+        if (res.data.code === 200) {
+            ElMessage.success('保存成功');
+        } else {
+            ElMessage.error(res.data.msg)
+        }
+    });
+};
 </script>

+ 46 - 46
src/views/recycle/orderSetting/components/not-supported-returned.vue

@@ -1,57 +1,57 @@
 <template>
-  <el-form :model="form" class="common-form" label-width="auto">
-    <el-form-item label="省份:" prop="area">
-      <div class="flex w-full">
-        <el-select
-          v-model="form.area"
-          multiple
-          placeholder="请选择"
-          filterable
-          style="width: 70%"
-        >
-          <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.district"
-            :value="item.id"
-          />
-        </el-select>
-        <el-button
-          type="success"
-          style="width: 100px; margin-left: 20px"
-          plain
-          @click="onSubmit"
-          >保存</el-button
-        >
-      </div>
-    </el-form-item>
-  </el-form>
+    <el-form :model="form" class="common-form" label-width="auto">
+        <el-form-item label="省份:" prop="area">
+            <div class="flex w-full">
+                <el-select v-model="form.area" multiple placeholder="请选择" filterable style="width: 70%">
+                    <el-option v-for="item in options" :key="item.value" :label="item.district" :value="item.id" />
+                </el-select>
+                <el-button type="success" style="width: 100px; margin-left: 20px" plain @click="onSubmit">保存</el-button>
+            </div>
+        </el-form-item>
+    </el-form>
 </template>
 
-<script lang="ts" setup>
-  import { reactive } from 'vue';
-  import EleInput from '@/components/CommonPage/EleInput.vue';
-  import request from '@/utils/request';
+<script setup>
+import { reactive, ref, watch } from 'vue';
+import { ElMessage } from 'element-plus';
+import request from '@/utils/request';
 
-  const form = reactive({
+const props = defineProps({
+    settings: {
+        type: Object,
+        default: () => ({})
+    }
+});
+
+const form = reactive({
     area: []
-  });
+});
 
-  const options = ref([]);
-  function getProviceList(id = 1) {
+const options = ref([]);
+function getProviceList(id = 1) {
     request.get(`/baseinfo/districtInfo/findInfo/${id}`).then((res) => {
-      options.value = res.data.data;
+        if (res.data.code === 200) {
+            options.value = res.data.data;
+        }
     });
-  }
-  getProviceList();
+}
+getProviceList();
+
+watch(() => props.settings, (newVal) => {
+    if (newVal) {
+        form.area = newVal.unsupportedRefundIds || [];
+    }
+}, { immediate: true, deep: true });
 
-  const onSubmit = () => {
-    request
-      .post(`/recycle/manage/unsupported/order/update`, {
+const onSubmit = () => {
+    request.post('/recycle/manage/unsupported/order/update', {
         provinceIds: form.area
-      })
-      .then((res) => {
-        ElMessage.success('保存成功');
-      });
-  };
+    }).then(res => {
+        if (res.data.code === 200) {
+            ElMessage.success('保存成功');
+        } else {
+            ElMessage.error(res.data.msg)
+        }
+    });
+};
 </script>

+ 88 - 96
src/views/recycle/orderSetting/components/recycle-alert-params.vue

@@ -1,104 +1,96 @@
 <template>
-  <el-form :model="form" class="common-form" label-width="auto" :rules="rules">
-    <el-form-item label=" 已揽件-物流异常:" prop="dayOrderNum">
-      <div class="flex items-center">
-        <el-checkbox v-model="form.checked1" label="开启" />
-        <ele-text class="ml-6">
-          已揽件状态的订单,路由信息
-          <el-input
-            v-model="form.dayOrderNum"
-            placeholder="请输入"
-            clearable
-            style="width: 100px"
-          />
-          天未更新
-        </ele-text>
-      </div>
-    </el-form-item>
-    <el-form-item label="已签收-收货超时:" prop="dayOrderTotal">
-      <div class="flex items-center">
-        <el-checkbox v-model="form.checked2" label="开启" />
-        <ele-text class="ml-6">
-          已签收状态
-          <el-input
-            v-model="form.dayOrderTotal"
-            placeholder="请输入"
-            clearable
-            style="width: 100px"
-          />
-          小时仍未确认收货
-        </ele-text>
-      </div>
-    </el-form-item>
-    <el-form-item label="已收货-审核超时:" prop="dayOrderTotal">
-      <div class="flex items-center">
-        <el-checkbox v-model="form.checked2" label="开启" />
-        <ele-text class="ml-6">
-          已收货状态
-          <el-input
-            v-model="form.dayOrderTotal"
-            placeholder="请输入"
-            clearable
-            style="width: 100px"
-          />
-          小时仍未审核完成
-        </ele-text>
-      </div>
-    </el-form-item>
-    <el-form-item label="已到仓-收货超时:" prop="dayOrderTotal">
-      <div class="flex items-center">
-        <el-checkbox v-model="form.checked2" label="开启" />
-        <ele-text class="ml-6">
-          已到仓状态
-          <el-input
-            v-model="form.dayOrderTotal"
-            placeholder="请输入"
-            clearable
-            style="width: 100px"
-          />
-          小时仍未确认收货
-        </ele-text>
-      </div>
-    </el-form-item>
+    <el-form :model="form" class="common-form" label-width="auto">
+        <el-form-item label="已揽件-物流异常:">
+            <div class="flex items-center">
+                <el-checkbox v-model="form.pickUpSwitch" :true-label="1" :false-label="0">开启</el-checkbox>
+                <ele-text class="ml-6">
+                    已揽件状态的订单,路由信息
+                    <el-input v-model="form.pickUpDays" placeholder="请输入" clearable style="width: 100px" />
+                    天未更新
+                </ele-text>
+            </div>
+        </el-form-item>
+        <el-form-item label="已签收-收货超时:">
+            <div class="flex items-center">
+                <el-checkbox v-model="form.signSwitch" :true-label="1" :false-label="0">开启</el-checkbox>
+                <ele-text class="ml-6">
+                    已签收状态
+                    <el-input v-model="form.signHours" placeholder="请输入" clearable style="width: 100px" />
+                    小时仍未确认收货
+                </ele-text>
+            </div>
+        </el-form-item>
+        <el-form-item label="已收货-审核超时:">
+            <div class="flex items-center">
+                <el-checkbox v-model="form.receivedSwitch" :true-label="1" :false-label="0">开启</el-checkbox>
+                <ele-text class="ml-6">
+                    已收货状态
+                    <el-input v-model="form.receivedHours" placeholder="请输入" clearable style="width: 100px" />
+                    小时仍未审核完成
+                </ele-text>
+            </div>
+        </el-form-item>
+        <el-form-item label="已到仓-收货超时:">
+            <div class="flex items-center">
+                <el-checkbox v-model="form.arrivedSwitch" :true-label="1" :false-label="0">开启</el-checkbox>
+                <ele-text class="ml-6">
+                    已到仓状态
+                    <el-input v-model="form.arrivedHours" placeholder="请输入" clearable style="width: 100px" />
+                    小时仍未确认收货
+                </ele-text>
+            </div>
+        </el-form-item>
 
-    <el-form-item>
-      <el-button type="success" style="width: 100px" plain @click="onSubmit"
-        >保存</el-button
-      >
-    </el-form-item>
-  </el-form>
+        <el-form-item>
+            <el-button type="success" style="width: 100px" plain @click="onSubmit">保存</el-button>
+        </el-form-item>
+    </el-form>
 </template>
 
-<script lang="ts" setup>
-  import { reactive } from 'vue';
-  import EleInput from '@/components/CommonPage/EleInput.vue';
+<script  setup>
+import { reactive, watch } from 'vue';
+import { ElMessage } from 'element-plus';
+import request from '@/utils/request';
 
-  const form = reactive({
-    dayOrderNum: '',
-    dayOrderTotal: '',
-    mobile: '',
-    checked1: true,
-    checked2: false
-  });
+const props = defineProps({
+    settings: {
+        type: Object,
+        default: () => ({})
+    }
+});
 
-  const rules = reactive({
-    dayOrderNum: [
-      {
-        required: true,
-        message: '请输入每人每日申请恢复订单限量',
-        trigger: 'blur'
-      }
-    ],
-    dayOrderTotal: [
-      {
-        required: true,
-        message: '请输入每日申请恢复订单总限量',
-        trigger: 'blur'
-      }
-    ]
-  });
+const form = reactive({
+    pickUpSwitch: 0,
+    pickUpDays: '',
+    signSwitch: 0,
+    signHours: '',
+    receivedSwitch: 0,
+    receivedHours: '',
+    arrivedSwitch: 0,
+    arrivedHours: ''
+});
 
-  const onSubmit = () => {
-    console.log('submit!');
-  };
+watch(() => props.settings, (newVal) => {
+    if (newVal) {
+        form.pickUpSwitch = newVal.earlyWarningPickUpSwitch;
+        form.pickUpDays = newVal.earlyWarningPickUpDays;
+        form.signSwitch = newVal.earlyWarningSignSwitch;
+        form.signHours = newVal.earlyWarningSignHours;
+        form.receivedSwitch = newVal.earlyWarningReceivedSwitch;
+        form.receivedHours = newVal.earlyWarningReceivedHours;
+        form.arrivedSwitch = newVal.earlyWarningArrivedSwitch;
+        form.arrivedHours = newVal.earlyWarningArrivedHours;
+    }
+}, { immediate: true, deep: true });
+
+const onSubmit = () => {
+    let data = JSON.parse(JSON.stringify(form))
+    request.post('/recycle/manage/overall/update/earlyWarning', data).then(res => {
+        if (res.data.code === 200) {
+            ElMessage.success('保存成功');
+        } else {
+            ElMessage.error(res.data.msg)
+        }
+    });
+};
 </script>

+ 52 - 65
src/views/recycle/orderSetting/components/recycle-order-settings.vue

@@ -1,72 +1,59 @@
 <template>
-  <el-form :model="form" class="common-form" label-width="auto" :rules="rules">
-    <el-form-item label="单个订单最少回收本数:" prop="dayOrderNum">
-      <ele-input
-        v-model="form.dayOrderNum"
-        placeholder="请输入"
-        clearable
-        suffixStr="本"
-      />
-    </el-form-item>
-    <el-form-item label="单个订单最多回收本数:" prop="dayOrderTotal">
-      <ele-input
-        v-model="form.dayOrderTotal"
-        placeholder="请输入"
-        suffixStr="本"
-        clearable
-      />
-    </el-form-item>
-    <el-form-item label="单个订单最少预估金额:" prop="mobile">
-      <ele-input
-        v-model="form.mobile"
-        placeholder="请输入"
-        clearable
-        suffixStr="元"
-      />
-    </el-form-item>
-    <el-form-item>
-      <el-button type="success" style="width: 100px" plain @click="onSubmit"
-        >保存</el-button
-      >
-    </el-form-item>
-  </el-form>
+    <el-form :model="form" class="common-form" label-width="auto">
+        <el-form-item label="单个订单最少回收本数:" prop="minNum">
+            <ele-input v-model="form.minNum" placeholder="请输入" clearable suffixStr="本" />
+        </el-form-item>
+        <el-form-item label="单个订单最多回收本数:" prop="maxNum">
+            <ele-input v-model="form.maxNum" placeholder="请输入" suffixStr="本" clearable />
+        </el-form-item>
+        <el-form-item label="单个订单最少预估金额:" prop="minMoney">
+            <ele-input v-model="form.minMoney" placeholder="请输入" clearable suffixStr="元" />
+        </el-form-item>
+        <el-form-item>
+            <el-button type="success" style="width: 100px" plain @click="onSubmit">保存</el-button>
+        </el-form-item>
+    </el-form>
 </template>
 
-<script lang="ts" setup>
-  import { reactive } from 'vue';
-  import EleInput from '@/components/CommonPage/EleInput.vue';
+<script setup>
+import { reactive, watch } from 'vue';
+import { ElMessage } from 'element-plus';
+import request from '@/utils/request';
+import EleInput from '@/components/CommonPage/EleInput.vue';
 
-  const form = reactive({
-    dayOrderNum: '',
-    dayOrderTotal: '',
-    mobile: ''
-  });
+const props = defineProps({
+    settings: {
+        type: Object,
+        default: () => ({})
+    }
+});
 
-  const rules = reactive({
-    dayOrderNum: [
-      {
-        required: true,
-        message: '请输入每人每日申请恢复订单限量',
-        trigger: 'blur'
-      }
-    ],
-    dayOrderTotal: [
-      {
-        required: true,
-        message: '请输入每日申请恢复订单总限量',
-        trigger: 'blur'
-      }
-    ],
-    mobile: [
-      {
-        required: true,
-        message: '请输入预留手机号',
-        trigger: 'blur'
-      }
-    ]
-  });
+const form = reactive({
+    minNum: '',
+    maxNum: '',
+    minMoney: ''
+});
 
-  const onSubmit = () => {
-    console.log('submit!');
-  };
+
+watch(() => props.settings, (newVal) => {
+    if (newVal) {
+        form.minNum = newVal.recycleOrderMinNum;
+        form.maxNum = newVal.recycleOrderMaxNum;
+        form.minMoney = newVal.recycleOrderMinMoney;
+    }
+}, { immediate: true, deep: true });
+
+const onSubmit = () => {
+    request.post('/recycle/manage/overall/update/recycleOrder', {
+        minNum: form.minNum,
+        maxNum: form.maxNum,
+        minMoney: form.minMoney
+    }).then(res => {
+        if (res.data.code === 200) {
+            ElMessage.success('保存成功');
+        } else {
+            ElMessage.error(res.data.msg)
+        }
+    });
+};
 </script>

+ 50 - 62
src/views/recycle/orderSetting/components/restore-order-settings.vue

@@ -1,70 +1,58 @@
 <template>
-  <el-form :model="form" class="common-form" label-width="auto" :rules="rules">
-    <el-form-item label="每人每日申请恢复订单限量:" prop="dayOrderNum">
-      <ele-input
-        v-model="form.dayOrderNum"
-        placeholder="请输入"
-        clearable
-        suffixStr="次"
-      />
-    </el-form-item>
-    <el-form-item label="每日申请恢复订单总限量:" prop="dayOrderTotal">
-      <ele-input
-        v-model="form.dayOrderTotal"
-        placeholder="请输入"
-        suffixStr="次"
-        clearable
-      />
-    </el-form-item>
-    <el-form-item label="预留手机号:" prop="mobile">
-      <ele-input v-model="form.mobile" placeholder="请输入" clearable />
-    </el-form-item>
-    <el-form-item>
-      <el-button type="success" style="width:100px" plain @click="onSubmit">保存</el-button>
-    </el-form-item>
-  </el-form>
+    <el-form :model="form" class="common-form" label-width="auto">
+        <el-form-item label="每人每日申请恢复订单限量:" prop="everyLimit">
+            <ele-input v-model="form.everyLimit" placeholder="请输入" clearable suffixStr="次" />
+        </el-form-item>
+        <el-form-item label="每日申请恢复订单总限量:" prop="totalLimit">
+            <ele-input v-model="form.totalLimit" placeholder="请输入" suffixStr="次" clearable />
+        </el-form-item>
+        <el-form-item label="预留手机号:" prop="mobile">
+            <ele-input v-model="form.mobile" placeholder="请输入" clearable />
+        </el-form-item>
+        <el-form-item>
+            <el-button type="success" style="width:100px" plain @click="onSubmit">保存</el-button>
+        </el-form-item>
+    </el-form>
 </template>
 
-<script lang="ts" setup>
-  import { reactive } from 'vue';
-  import EleInput from '@/components/CommonPage/EleInput.vue';
+<script setup>
+import { reactive, watch } from 'vue';
+import { ElMessage } from 'element-plus';
+import request from '@/utils/request';
+import EleInput from '@/components/CommonPage/EleInput.vue';
 
-  const form = reactive({
-    dayOrderNum: '',
-    dayOrderTotal: '',
+const props = defineProps({
+    settings: {
+        type: Object,
+        default: () => ({})
+    }
+});
+
+const form = reactive({
+    everyLimit: '',
+    totalLimit: '',
     mobile: ''
-  });
+});
 
-  const rules = reactive({
-    dayOrderNum: [
-      {
-        required: true,
-        message: '请输入每人每日申请恢复订单限量',
-        trigger: 'blur'
-      }
-    ],
-    dayOrderTotal: [
-      {
-        required: true,
-        message: '请输入每日申请恢复订单总限量',
-        trigger: 'blur'
-      }
-    ],
-    mobile: [
-      {
-        required: true,
-        message: '请输入预留手机号',
-        trigger: 'blur'
-      },
-      {
-        pattern: /^1[3456789]\d{9}$/,
-        message: '手机号格式不正确',
-        trigger: ['blur']
-      }
-    ]
-  });
+watch(() => props.settings, (newVal) => {
+    if (newVal) {
+        form.everyLimit = newVal.customerRecoverOrderEveryLimit;
+        form.totalLimit = newVal.customerRecoverOrderTotalLimit;
+        form.mobile = newVal.customerRecoverOrderMobile;
+    }
+}, { immediate: true, deep: true });
 
-  const onSubmit = () => {
-    console.log('submit!');
-  };
+const onSubmit = () => {
+    request.post('/recycle/manage/overall/update/customerRecoverOrder', {
+        everyLimit: form.everyLimit,
+        totalLimit: form.totalLimit,
+        mobile: form.mobile
+    }).then(res => {
+        if (res.data.code === 200) {
+            ElMessage.success('保存成功');
+        } else {
+            ElMessage.error(res.data.msg)
+        }
+    });
+};
 </script>

+ 13 - 8
src/views/recycle/orderSetting/index.vue

@@ -3,33 +3,33 @@
         <ele-card flex-table>
             <div class="common-section mb-4">
                 <div class="common-title mb-4">自动初审设置</div>
-                <auto-audit-settings />
+                <auto-audit-settings :settings="settings" />
             </div>
             <div class="common-section mb-4">
                 <div class="common-title mb-4">不支持退回地区</div>
-                <not-supported-returned />
+                <not-supported-returned :settings="settings" />
             </div>
             <div class="common-section mb-4">
                 <div class="common-title mb-4">不支持下单地区</div>
-                <not-supported-area />
+                <not-supported-area :settings="settings" />
             </div>
             <div class="common-section mb-4">
                 <div class="common-title mb-4 flex items-center">回收预警参数设置
                     <ele-text type="info" class="ml-4">开启后达到以下条件,在“回收订单预警”页面进行预警,最大输入数值为1000</ele-text>
                 </div>
-                <recycle-alert-params />
+                <recycle-alert-params :settings="settings" />
             </div>
             <div class="common-section mb-4">
                 <div class="common-title mb-4">回收订单设置</div>
-                <recycle-order-settings />
+                <recycle-order-settings :settings="settings" />
             </div>
             <div class="common-section mb-4">
                 <div class="common-title mb-4">自动取消订单设置</div>
-                <auto-cancel-order />
+                <auto-cancel-order :settings="settings" />
             </div>
             <div class="common-section">
                 <div class="common-title mb-4">客服申请恢复订单限制</div>
-                <restore-order-settings />
+                <restore-order-settings :settings="settings" />
             </div>
         </ele-card>
     </ele-page>
@@ -49,9 +49,14 @@ let { proxy } = getCurrentInstance();
 defineOptions({ name: 'recycleOrderSettings' });
 
 //获取当前设置
+const settings = ref({})
 function getSettings() {
     proxy.$http.get('/recycle/manage/get').then((res) => {
-        console.log(res);
+        if(res.data.code === 200){
+            settings.value = res.data.data
+        }else{
+            ElMessage.error(res.data.msg)
+        }
     });
 }
 getSettings()

+ 1 - 1
src/views/recycleOrder/components/order-page-all.vue

@@ -143,7 +143,7 @@
         <!-- 订单日志 -->
         <orderLog ref="orderLogRef" />
         <!-- 用户标签 -->
-        <userBindTag ref="userTagRef" />
+        <userBindTag ref="userTagRef" @success="reload()" />
         <!-- 用户详情 -->
         <orderDetail ref="orderDetailRef" />
     </ele-page>

+ 2 - 0
src/views/recycleOrder/components/user-bind-tag.vue

@@ -54,6 +54,7 @@ const getUserTagList = (userId) => {
     });
 };
 
+const emit = defineEmits(['success']);
 /** 提交 */
 const handleSubmit = () => {
     if (userTag.value.length == 0) return ElMessage.warning('请选择用户标签');
@@ -65,6 +66,7 @@ const handleSubmit = () => {
         loading.value = false;
         if (res.data.code == 200) {
             handleCancel();
+            emit('success');
         } else {
             ElMessage.error(res.data.msg);
         }