zlwu 1 年之前
父節點
當前提交
c1c35c9a61
共有 6 個文件被更改,包括 126 次插入 和 16 次删除
  1. 二進制
      .DS_Store
  2. 二進制
      backend/ruoyi-admin/.DS_Store
  3. 37 3
      web/src/views/crm/contract/index.vue
  4. 21 0
      web/src/views/crm/quote/detail.vue
  5. 47 13
      web/src/views/crm/quote/form.vue
  6. 21 0
      web/src/views/crm/quote/index.vue

二進制
.DS_Store


二進制
backend/ruoyi-admin/.DS_Store


+ 37 - 3
web/src/views/crm/contract/index.vue

@@ -313,6 +313,27 @@
               >提交审批</el-button
             >
           </el-col>
+          <!-- 审批按钮 - 仅在待审批视图显示 -->
+          <el-col :span="1.5" v-if="activeView === 'submitted'">
+            <el-button
+              type="success"
+              plain
+              icon="Select"
+              :disabled="single"
+              @click="handleApprove(contractList[contractList.findIndex((item) => item.id === ids[0])])"
+              >审批通过</el-button
+            >
+          </el-col>
+          <el-col :span="1.5" v-if="activeView === 'submitted'">
+            <el-button
+              type="danger"
+              plain
+              icon="Close"
+              :disabled="single"
+              @click="handleReject(contractList[contractList.findIndex((item) => item.id === ids[0])])"
+              >审批驳回</el-button
+            >
+          </el-col>
           <el-col :span="1.5">
             <el-button
               type="success"
@@ -395,6 +416,19 @@
             <span>{{ parseTime(scope.row.createTime) }}</span>
           </template>
         </el-table-column>
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" fixed="right">
+          <template #default="scope">
+            <el-tooltip content="查看" placement="top">
+              <el-button link type="primary" icon="View" @click="handleView(scope.row)" />
+            </el-tooltip>
+            <el-tooltip content="编辑" placement="top" v-if="scope.row.status === 'draft'">
+              <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" />
+            </el-tooltip>
+            <el-tooltip content="删除" placement="top" v-if="scope.row.status === 'draft'">
+              <el-button link type="danger" icon="Delete" @click="handleDelete(scope.row)" />
+            </el-tooltip>
+          </template>
+        </el-table-column>
       </el-table>
 
       <!-- 分页 -->
@@ -2441,14 +2475,14 @@ onMounted(() => {
 .statistics-row {
   padding: 10px 0;
   margin-bottom: 20px;
-  
+
   :deep(.el-statistic) {
     text-align: center;
-    
+
     .el-statistic__head {
       justify-content: center;
     }
-    
+
     .el-statistic__content {
       justify-content: center;
     }

+ 21 - 0
web/src/views/crm/quote/detail.vue

@@ -901,4 +901,25 @@ onMounted(() => {
 .mb-4 {
   margin-bottom: 16px;
 }
+
+/* 统一表格内输入框和选择框高度为32px */
+:deep(.el-table .el-input__wrapper) {
+  height: 32px !important;
+  min-height: 32px !important;
+}
+
+:deep(.el-table .el-select__wrapper) {
+  height: 32px !important;
+  min-height: 32px !important;
+}
+
+:deep(.el-table .el-input--small .el-input__wrapper) {
+  height: 32px !important;
+  min-height: 32px !important;
+}
+
+:deep(.el-table .el-select--small .el-select__wrapper) {
+  height: 32px !important;
+  min-height: 32px !important;
+}
 </style>

+ 47 - 13
web/src/views/crm/quote/form.vue

@@ -11,7 +11,7 @@
       <el-form ref="formRef" :model="form" :rules="rules" label-width="120px">
         <!-- 基本信息 -->
         <el-divider content-position="left">
-          <span style="font-size: 16px; font-weight: bold; color: #409eff">
+          <span style="font-size: 16px; font-weight: bold; color: #67c23a">
             <el-icon><Document /></el-icon> 基本信息
           </span>
         </el-divider>
@@ -87,15 +87,17 @@
 
         <!-- 产品明细 -->
         <el-divider content-position="left">
-          <span style="font-size: 16px; font-weight: bold; color: #409eff">
+          <span style="font-size: 16px; font-weight: bold; color: #67c23a">
             <el-icon><GoodsFilled /></el-icon> 产品明细
           </span>
         </el-divider>
         <div>
           <el-row class="mb-3">
             <el-col :span="24">
-              <el-button type="primary" icon="Plus" @click="handleAddProduct">添加产品</el-button>
-              <el-button type="danger" icon="Delete" :disabled="selectedProducts.length === 0" @click="handleDeleteProducts">删除选中</el-button>
+              <el-button type="primary" plain icon="Plus" @click="handleAddProduct">添加产品</el-button>
+              <el-button type="danger" plain icon="Delete" :disabled="selectedProducts.length === 0" @click="handleDeleteProducts"
+                >删除选中</el-button
+              >
             </el-col>
           </el-row>
 
@@ -142,12 +144,14 @@
             </el-table-column>
             <el-table-column label="包装规格" prop="packageSpec" min-width="150">
               <template #default="scope">
-                <el-input v-model="scope.row.packageSpec" placeholder="请输入包装规格" clearable />
+                <el-input v-model="scope.row.packageSpec" placeholder="请输入包装规格" clearable size="small" />
               </template>
             </el-table-column>
             <el-table-column label="送货方式" prop="deliveryMethod" min-width="150">
               <template #default="scope">
-                <el-input v-model="scope.row.deliveryMethod" placeholder="请输入送货方式" clearable />
+                <el-select v-model="scope.row.deliveryMethod" placeholder="请选择送货方式" clearable size="small" style="width: 100%">
+                  <el-option v-for="dict in crm_shfs" :key="dict.value" :label="dict.label" :value="dict.value" />
+                </el-select>
               </template>
             </el-table-column>
             <el-table-column label="操作" width="80" align="center" fixed="right">
@@ -171,7 +175,7 @@
 
         <!-- 报价条款 -->
         <el-divider content-position="left">
-          <span style="font-size: 16px; font-weight: bold; color: #409eff">
+          <span style="font-size: 16px; font-weight: bold; color: #67c23a">
             <el-icon><List /></el-icon> 报价条款
           </span>
         </el-divider>
@@ -270,10 +274,10 @@
 
         <!-- 操作按钮 -->
         <el-divider></el-divider>
-        <el-form-item>
-          <el-button type="primary" @click="handleSaveDraft" :loading="saveLoading">保存草稿</el-button>
-          <el-button type="success" @click="handleSubmit">提交审批</el-button>
-          <el-button @click="handleBack">取消</el-button>
+        <el-form-item class="form-actions">
+          <el-button type="primary" plain icon="DocumentCopy" @click="handleSaveDraft" :loading="saveLoading">保存草稿</el-button>
+          <el-button type="success" plain icon="CircleCheck" @click="handleSubmit">提交审批</el-button>
+          <el-button plain icon="Close" @click="handleBack">取消</el-button>
         </el-form-item>
       </el-form>
     </el-card>
@@ -334,7 +338,7 @@ import type { QuoteForm, QuoteProductForm } from '@/api/crm/quote';
 import { useRouter, useRoute } from 'vue-router';
 import { getToken } from '@/utils/auth';
 import request from '@/utils/request';
-import { UploadFilled, Document, Loading, Download, Delete, GoodsFilled, List } from '@element-plus/icons-vue';
+import { UploadFilled, Document, Loading, Download, Delete, GoodsFilled, List, DocumentCopy, CircleCheck, Close } from '@element-plus/icons-vue';
 import ImagePreview from '@/components/ImagePreview/index.vue';
 import ProductSelector from './components/ProductSelector.vue';
 import CustomerSelector from '@/components/CustomerSelector.vue';
@@ -367,7 +371,7 @@ const route = useRoute();
 const { proxy } = getCurrentInstance() as any;
 
 // 字典数据
-const { crm_product_unit } = toRefs<any>(proxy?.useDict('crm_product_unit'));
+const { crm_product_unit, crm_shfs } = toRefs<any>(proxy?.useDict('crm_product_unit', 'crm_shfs'));
 
 // 表单标题
 const formTitle = computed(() => {
@@ -1290,4 +1294,34 @@ onMounted(() => {
   color: #999;
   margin-top: 5px;
 }
+
+/* 统一表格内输入框和选择框高度为32px */
+:deep(.el-table .el-input__wrapper) {
+  height: 32px !important;
+  min-height: 32px !important;
+}
+
+:deep(.el-table .el-select__wrapper) {
+  height: 32px !important;
+  min-height: 32px !important;
+}
+
+:deep(.el-table .el-input--small .el-input__wrapper) {
+  height: 32px !important;
+  min-height: 32px !important;
+}
+
+:deep(.el-table .el-select--small .el-select__wrapper) {
+  height: 32px !important;
+  min-height: 32px !important;
+}
+
+/* 按钮居中样式 */
+.form-actions {
+  text-align: center;
+}
+
+.form-actions :deep(.el-form-item__content) {
+  justify-content: center;
+}
 </style>

+ 21 - 0
web/src/views/crm/quote/index.vue

@@ -2132,4 +2132,25 @@ onMounted(() => {
   font-weight: 600;
   color: #303133;
 }
+
+/* 统一表格内输入框和选择框高度为32px */
+:deep(.el-table .el-input__wrapper) {
+  height: 32px !important;
+  min-height: 32px !important;
+}
+
+:deep(.el-table .el-select__wrapper) {
+  height: 32px !important;
+  min-height: 32px !important;
+}
+
+:deep(.el-table .el-input--small .el-input__wrapper) {
+  height: 32px !important;
+  min-height: 32px !important;
+}
+
+:deep(.el-table .el-select--small .el-select__wrapper) {
+  height: 32px !important;
+  min-height: 32px !important;
+}
 </style>