ソースを参照

翻译及修改背景颜色

yangg 11 ヶ月 前
コミット
084f6cba36

+ 25 - 9
src/components/TableLayout/index.vue

@@ -1,11 +1,12 @@
 <template>
-  <div class="containers dark:bg-[#060818] p-3" v-loading="loading">
-    <div class="tips-info" v-if="tips">
+  <div class="containers dark:!bg-[#060818] p-3" v-loading="loading">
+    <div class="tips-info dark:!bg-[#060818]" v-if="tips">
       <slot name="tips"></slot>
     </div>
-    <div v-if="toolbar" class="toolbar">
+    <div v-if="toolbar" class="toolbar dark:!bg-[#060818]">
       <slot name="toolbar"></slot>
     </div>
+    <!-- //{ textAlign: 'center' } -->
     <el-table
       :max-height="height"
       v-bind="$attrs"
@@ -15,16 +16,17 @@
       :data="tableData"
       :row-key="rowKey"
       :stripe="stripe"
-      :header-cell-style="{ textAlign: 'center' }"
-      :cell-style="{textAlign: 'center'}"
+      :header-cell-style="headerCellStyle"
+      :cell-style="{ textAlign: 'center' }"
       :style="{ width: '100%', minHeight: height + 'px' }"
       @selection-change="selectionChange"
+      class="dark:!bg-[#060818]"
       highlight-current-row
     >
-      <slot name="table-columns"></slot>
+      <slot name="table-columns" class="dark:!bg-[#060818]"></slot>
     </el-table>
-    <div v-if="pagination" class="pagination">
-      <div class="pagination-toolbar">
+    <div v-if="pagination" class="pagination dark:!bg-[#060818]">
+      <div class="pagination-toolbar dark:!bg-[#060818]">
         <slot name="pagination-toolbar"></slot>
       </div>
       <slot name="pagination"></slot>
@@ -33,8 +35,9 @@
 </template>
 
 <script>
+import { mapState } from 'vuex';
 export default {
-  name: 'EnTableLayout',
+  name: '',
   props: {
     /** 是否显示斑纹 */
     stripe: {
@@ -85,10 +88,20 @@ export default {
       height: `${document.body.clientHeight - 260}`,
     };
   },
+  methods: {
+    headerCellStyle() {
+      return {
+        backgroundColor: 'bg-[#060818]', // Tailwind CSS class
+      };
+    },
+  },
 };
 </script>
 
 <style  scoped>
+.el-table {
+  background-color: transparent !important;
+}
 .containers {
   width: 100%;
   height: 100%;
@@ -151,4 +164,7 @@ li {
   font-size: 12px;
   list-style-type: disc;
 }
+:deep(.el-table__header) {
+  @apply dark:bg-[#060818];
+}
 </style>

+ 2 - 2
src/components/TableSearch/index.vue

@@ -1,7 +1,7 @@
 <template>
-  <div class="en-search">
+  <div class="en-search dark:!bg-[#060818]">
     <div style="width: 330px">
-      <el-input v-if="true" size="small" clearable :placeholder="placeholder" v-model="keyword" @keyup.enter="search">
+      <el-input v-if="true" size="small" class="dark:!bg-[#060818]" clearable :placeholder="placeholder" v-model="keyword" @keyup.enter="search">
         <template #append>
           <el-button @click="search">
             <el-icon style="vertical-align: middle">

+ 4 - 3
src/components/layout/Header.vue

@@ -23,8 +23,9 @@
         <div class="ltr:mr-2 rtl:ml-2 hidden sm:block">
           <ul class="flex items-center space-x-2 rtl:space-x-reverse dark:text-[#d0d2d6]">
             <li>
+              <!--   to="/apps/calendar" -->
               <router-link
-                to="/apps/calendar"
+                to=""
                 class="block p-2 rounded-full bg-white-light/40 dark:bg-dark/40 hover:text-primary hover:bg-white-light/90 dark:hover:bg-dark/60"
               >
                 <icon-calendar />
@@ -32,7 +33,7 @@
             </li>
             <li>
               <router-link
-                to="/apps/todolist"
+                to=""
                 class="block p-2 rounded-full bg-white-light/40 dark:bg-dark/40 hover:text-primary hover:bg-white-light/90 dark:hover:bg-dark/60"
               >
                 <icon-edit />
@@ -40,7 +41,7 @@
             </li>
             <li>
               <router-link
-                to="/apps/chat"
+                to=""
                 class="block p-2 rounded-full bg-white-light/40 dark:bg-dark/40 hover:text-primary hover:bg-white-light/90 dark:hover:bg-dark/60"
               >
                 <icon-chat-notification />

+ 63 - 13
src/locales/zh.json

@@ -33,23 +33,27 @@
     "SKUList":"商品列表",
     "warehouseLocation":"库位区域",
     "addInventory":"新增入库",
+    "synchronous":"同步",
 
-    "add": "新增",
-    "edit": "编辑",
-    "view":"查看",
-    "delete":"删除",
-    "review":"审核",
-    "down":"驳回",
-    "print":"打印",
-    "preview":"预览",
-    "operate":"操作",
-    "submit":"确定",
-    "cancel":"取消",
+    "add": "新 增",
+    "edit": "编 辑",
+    "view":"查 看",
+    "delete":"删 除",
+    "review":"审 核",
+    "down":"驳 回",
+    "print":"打 印",
+    "preview":"预 览",
+    "search":"搜 索",
+    "operate":"操 作",
+    "submit":"确 定",
+    "cancel":"取 消",
     "place":"请输入",
+    "content":"内容",
     "change":"请选择",
     "notes":"备注",
     "add_success":"添加成功",
     "edit_success":"修改成功",
+    "set_success":"设置成功",
     "prompt":"提示",
     "del_info":"确定要删除吗?",
     "del_success":"删除成功",
@@ -69,8 +73,54 @@
     "location_notes":"库位说明",
     "location_code":"区域编号",
     "location_name":"区域名称",
-    
-   
+    "actual_stock":"实际库存",
+    "usable_stock":"可用库存",
+    "transit_stock":"在途库存",
+    "locked_stock":"冻结库存",
+    "warning_stock":"预警库存",
+    "transitDetails":"在途明细",
+    "order_sn":"订单编号",
+    "transit_num":"在途数量",
+    "return_date":"返回日期",
+    "setNumber":"设置预警数量",
+    "warningQuantity":"预警数量",
+    "integer":"正整数",
+    "warehousing":"入库",
+    "access_time":"出入时间",
+    "start_time":"开始时间",
+    "end_time":"结束时间",
+    "storage_type":"入库类型",
+    "customer_name":"客户名称",
+    "phone":"手机号",
+    "warehousing_sn":"入库单号",
+    "warehousing_type":"入库类型",
+    "warehousing_time":"入库时间",
+    "warehousing_state":"状态",
+    "inStock":"已入库",
+    "notStock":"未入库",
+
+    "outBound":"出库",
+    "out_sn":"出库单号",
+    "out_type":"出库类型",
+
+    "inventoryDate":"盘点日期",
+    "inventoryPeople":"盘点人",
+    "inventorySn":"盘点单编号",
+    "inventory_time":"盘点日期",
+
+    "goods_sn":"商品编号",
+    "goods_name":"商品编号",
+    "goods_unit":"单位",
+    "inOut":"已出库",
+    "notOut":"未出库",
+    "outTime":"出库时间",
+
+    "loss_date":"报损日期",
+    "loss_people":"报损人",
+    "loss_sn":"报损单编号",
+    "loss_desc":"报损说明",
+
+    "from_warehouse":"调出仓库",
 
     "tabs": "标签",
     "error": "错误",

+ 21 - 7
src/views/companyMent/companyInfo.vue

@@ -1,7 +1,7 @@
 <template>
-  <div class="bg-white">
-    <el-tabs type="border-card">
-      <el-tab-pane label="公司信息">
+  <div class="bg-white dark:!bg-[#060818]">
+    <el-tabs type="border-card" class="bg-gray-100 dark:bg-[#060818]">
+      <el-tab-pane label="公司信息" class="custom-tab-pane">
         <el-form :model="companyForm" :rules="stockRules" ref="companyFormRef" label-width="140px">
           <el-row>
             <el-col :span="6">
@@ -75,7 +75,7 @@
               <el-form-item label="营业执照:" prop="license">
                 <el-upload
                   class="avatar-uploader"
-                  :action=uploadUrl
+                  :action="uploadUrl"
                   :show-file-list="false"
                   :on-success="handleAvatarSuccess"
                   :before-upload="beforeAvatarUpload"
@@ -89,7 +89,7 @@
         </el-form>
         <div class="flex justify-center"><el-button type="primary" @click="submitWarehouseForm">保 存</el-button></div>
       </el-tab-pane>
-      <el-tab-pane label="个人信息">
+      <el-tab-pane label="个人信息" class="custom-tab-pane">
         <el-form :model="infoForm" :rules="stockRules" ref="infoFormRef" label-width="140px">
           <el-row>
             <el-col :span="16">
@@ -125,7 +125,7 @@
               <el-form-item label="头像:" prop="face">
                 <el-upload
                   class="avatar-uploader"
-                  :action=uploadUrl
+                  :action="uploadUrl"
                   :show-file-list="false"
                   :on-success="handleInfoSuccess"
                   :before-upload="beforeInfoUpload"
@@ -265,7 +265,7 @@ const GET_Info = () => {
 const submitInfo = () => {
   if (infoForm.value.face == undefined) {
     return ElMessage.error('请上传头像!');
-  }else if(infoForm.value.face==imgUrl.value){
+  } else if (infoForm.value.face == imgUrl.value) {
     return ElMessage.error('请上传新的头像!');
   }
   API_Auth.editAdministrator(store.state.user.user.uid, { face: infoForm.value.face }).then((res) => {
@@ -330,4 +330,18 @@ onMounted(() => {
 .point-pane .el-input-group {
   width: 200px;
 }
+.custom-tabs {
+  @apply dark:bg-[#060818];
+}
+
+:deep(.el-tabs__header) {
+  @apply dark:bg-[#060818];
+}
+
+:deep(.custom-tab-pane) {
+  @apply dark:bg-[#060818];
+}
+:deep(.el-tabs__item.is-active) {
+  @apply dark:bg-[#060818]; /* 替换为你想要的 Tailwind CSS 背景色类 */
+}
 </style>

+ 17 - 17
src/views/stock/goodsInventory.vue

@@ -4,7 +4,7 @@
       <el-form ref="advancedForm" :model="advancedForm" label-width="160px">
         <el-row>
           <el-col :span="6">
-            <el-form-item label="盘点日期">
+            <el-form-item :label="$t('inventoryDate')">
               <el-date-picker
                 v-model="searchTime"
                 type="daterange"
@@ -14,22 +14,22 @@
                 :clearable="true"
                 :default-time="['00:00:00', '23:59:59']"
                 range-separator="-"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
+                :start-placeholder="$t('start_time')"
+                :end-placeholder="$t('end_time')"
                 value-format="yyyy-MM-dd hh:mm:ss"
               >
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="仓库">
+            <el-form-item :label="$t('warechouse')">
               <el-select v-model="advancedForm.warehouse_id" clearable>
                 <el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="盘点人">
+            <el-form-item :label="$t('inventoryPeople')">
               <el-select v-model="advancedForm.inventory_person_id" clearable>
                 <el-option v-for="item in adminList" :key="item.id" :label="item.real_name" :value="item.id" />
               </el-select>
@@ -38,7 +38,7 @@
         </el-row>
       </el-form>
       <div class="flex justify-end">
-        <el-button @click="advancedSearchEvent"> 搜索 </el-button>
+        <el-button @click="advancedSearchEvent"> {{$t('search')}} </el-button>
       </div>
     </div>
     <en-table-layout :tableData="tableData.data" :loading="loading" @selection-change="handleSelectionChange">
@@ -46,35 +46,35 @@
         <div class="inner-toolbar">
           <div class="toolbar-btns">
             <!-- v-if="checkPermission(['goodsInventory:add'])" type="primary" -->
-            <el-button size="mini" v-if="store.state.user.user.founder!==1" @click="handleAddGoodsInventory">新增</el-button>
+            <el-button size="mini" v-if="store.state.user.user.founder!==1" @click="handleAddGoodsInventory">{{$t('add')}}</el-button>
           </div>
         </div>
       </template>
 
       <template #table-columns>
         <el-table-column type="selection" width="55" />
-        <el-table-column prop="sn" label="盘点单编号">
+        <el-table-column prop="sn" :label="$t('inventorySn')">
           <template #default="scope">
             <span>{{ scope.row.sn }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="inventory_time" label="盘点日期">
+        <el-table-column prop="inventory_time" :label="$t('inventory_time')">
           <template #default="scope">{{ scope.row.inventory_time }}</template>
         </el-table-column>
-        <el-table-column prop="warehouse_name" label="仓库">
+        <el-table-column prop="warehouse_name" :label="$t('warechouse')">
           <template #default="scope">{{ warehouseName(scope.row.warehouse_id) }}</template>
         </el-table-column>
-        <el-table-column prop="status" label="状态">
+        <el-table-column prop="status" :label="$t('warehousing_state')">
           <template #default="scope">{{ statusFilter(scope.row.status) }}</template>
         </el-table-column>
-        <el-table-column label="操作" width="450">
+        <el-table-column :label="$t('operate')" width="450">
           <template #default="scope">
             <!-- v-if="checkPermission(['goodsInventoryCheck'])" -->
-            <el-button size="mini" @click="handleCheckGoodsInventory(scope.row)">查看</el-button>
+            <el-button size="mini" @click="handleCheckGoodsInventory(scope.row)">{{$t('view')}}</el-button>
             <!--  && checkPermission(['goodsInventoryEdit']) -->
-            <el-button v-if="scope.row.status == 'NOT_HANDLE'&& store.state.user.user.founder!==1" size="mini" @click="handleEditGoodsInventory(scope.row)">编辑</el-button>
+            <el-button v-if="scope.row.status == 'NOT_HANDLE'&& store.state.user.user.founder!==1" size="mini" @click="handleEditGoodsInventory(scope.row)">{{$t('edit')}}</el-button>
             <!--  && checkPermission(['goodsInventory:sync']) -->
-            <el-button type="mini" size="mini" v-if="scope.row.status == 'NOT_HANDLE'&& store.state.user.user.founder!==1" @click="handleSubmitGoodsInventory(scope.row)">同步</el-button>
+            <el-button type="mini" size="mini" v-if="scope.row.status == 'NOT_HANDLE'&& store.state.user.user.founder!==1" @click="handleSubmitGoodsInventory(scope.row)">{{$t('synchronous')}}</el-button>
           </template>
         </el-table-column>
       </template>
@@ -92,7 +92,7 @@
       </el-pagination>
     </en-table-layout>
 
-    <el-dialog v-model="dialogVisible" width="940px" center>
+    <!-- <el-dialog v-model="dialogVisible" width="940px" center>
       <div style="width: 900px">
         <el-button size="mini" type="primary" @click="handlePrintGoodsInventory" class="print no-btn">打印</el-button>
         <div id="deliverySheet"  class="deliverySheet-header">
@@ -150,7 +150,7 @@
           <div>盘点人:{{ goodsInventoryForm.inventory_person }}</div>
         </div>
       </div>
-    </el-dialog>
+    </el-dialog> -->
   </div>
 </template>
   

+ 21 - 15
src/views/stock/goodsInventoryLoss.vue

@@ -4,7 +4,7 @@
       <el-form :model="advancedForm" label-width="160px">
         <el-row>
           <el-col :span="6">
-            <el-form-item label="报损日期">
+            <el-form-item :label="$t('loss_date')">
               <el-date-picker
                 v-model="advancedForm.goodsInventory_time_range"
                 type="daterange"
@@ -14,8 +14,8 @@
                 :clearable="true"
                 :default-time="['00:00:00', '23:59:59']"
                 range-separator="-"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
+                :start-placeholder="$t('start_time')"
+                :end-placeholder="$t('end_time')"
                 value-format="YYYY-MM-DD HH:mm:ss"
                 :picker-options="pickerOptions"
               >
@@ -23,21 +23,21 @@
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="仓库">
+            <el-form-item :label="$t('warechouse')">
               <el-select v-model="advancedForm.warehouse_id">
                 <el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="报损人">
-              <el-input v-model="advancedForm.creator" placeholder="请输入内容" width="200px"></el-input>
+            <el-form-item :label="$t('loss_people')">
+              <el-input v-model="advancedForm.creator" :placeholder="$t('place') + $t('loss_people')" width="200px"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <div class="flex justify-end">
-        <el-button @click="advancedSearchEvent"> 搜索 </el-button>
+        <el-button @click="advancedSearchEvent"> {{ $t('search') }} </el-button>
       </div>
     </div>
     <en-table-layout :tableData="tableData.data" :loading="loading" @selection-change="handleSelectionChange">
@@ -45,31 +45,37 @@
         <div class="inner-toolbar">
           <div class="toolbar-btns">
             <!-- v-if="checkPermission(['goodsInventoryLoss:add'])" -->
-            <el-button size="mini" type="primary" v-if="store.state.user.user.founder!==1" @click="handleAddGoodsInventoryLoss">新增</el-button>
+            <el-button size="mini" type="primary" v-if="store.state.user.user.founder !== 1" @click="handleAddGoodsInventoryLoss">{{ $t('add') }}</el-button>
           </div>
         </div>
       </template>
 
       <template #table-columns>
         <el-table-column type="selection" width="55" />
-        <el-table-column prop="sn" label="报损单编号">
+        <el-table-column prop="sn" :label="$t('loss_sn')">
           <template #default="scope">
             <span>{{ scope.row.sn }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="仓库">
+        <el-table-column :label="$t('warechouse')">
           <template #default="scope">{{ warehouseName(scope.row.warehouse_id) }}</template>
         </el-table-column>
-        <el-table-column prop="status" label="状态">
+        <el-table-column prop="status" :label="$t('warehousing_state')">
           <template #default="scope">{{ statusFilter(scope.row.status) }}</template>
         </el-table-column>
-        <el-table-column prop="report_desc" label="报损说明" />
-        <el-table-column label="操作" width="450">
+        <el-table-column prop="report_desc" :label="$t('loss_desc')" />
+        <el-table-column :label="$t('operate')" width="450">
           <template #default="scope">
             <!-- v-if="checkPermission(['goodsInventoryLossDetail'])" -->
-            <el-button type="mini" size="mini" @click="handleDetailGoodsInventoryLoss(scope.row)">查看</el-button>
+            <el-button type="mini" size="mini" @click="handleDetailGoodsInventoryLoss(scope.row)">{{ $t('view') }}</el-button>
             <!--  && checkPermission(['goodsInventoryLossEdit']) -->
-            <el-button type="mini" size="mini" v-if="scope.row.status == 'NOT_HANDLE'&& store.state.user.user.founder!==1"  @click="handleSubmitGoodsInventoryLoss(scope.row)">审核</el-button>
+            <el-button
+              type="mini"
+              size="mini"
+              v-if="scope.row.status == 'NOT_HANDLE' && store.state.user.user.founder !== 1"
+              @click="handleSubmitGoodsInventoryLoss(scope.row)"
+              >{{ $t('review') }}</el-button
+            >
           </template>
         </el-table-column>
       </template>

+ 4 - 50
src/views/stock/goodsLend.vue

@@ -14,63 +14,17 @@
               >打印</el-button
             > -->
           </div>
-          <div class="toolbar-search">
-            <en-table-search @search="searchEvent" @advancedSearch="advancedSearchEvent" placeholder="请输入仓库编号" advanced advancedWidth="465">
-              <template #advanced-content>
-                <el-form ref="advancedForm" :model="advancedForm" label-width="90px">
-                  <el-form-item label="仓库">
-                    <el-cascader
-                      v-model="advancedForm.dept_id"
-                      :options="warehouseList"
-                      :props="{
-                        label: 'name',
-                        value: 'id',
-                        emitPath: false,
-                        checkStrictly: true,
-                      }"
-                      clearable
-                    ></el-cascader>
-                  </el-form-item>
-                  <el-form-item label="状态">
-                    <el-select v-model="advancedForm.status" clearable>
-                      <el-option key="NEW" label="新创建" value="NEW" />
-                      <el-option key="CONFIRMED" label="已确认" value="CONFIRMED" />
-                      <el-option key="RETURNED" label="已归还" value="RETURNED" />
-                    </el-select>
-                  </el-form-item>
-                  <el-form-item label="时间">
-                    <el-date-picker
-                      v-model="advancedForm.goodsLend_time_range"
-                      type="daterange"
-                      align="center"
-                      :editable="false"
-                      unlink-panels
-                      :clearable="true"
-                      :default-time="['00:00:00', '23:59:59']"
-                      range-separator="-"
-                      start-placeholder="开始日期"
-                      end-placeholder="结束日期"
-                      value-format="timestamp"
-                      :picker-options="{
-                        disabledDate(time) {
-                          return time.getTime() - 1 >= new Date(new Date().getFullYear(), new Date().getMonth(), new Date().getDate()).getTime() + 86400000 - 1;
-                        },
-                        shortcuts: MixinPickerShortcuts,
-                      }"
-                    >
-                    </el-date-picker>
-                  </el-form-item>
-                </el-form>
-              </template>
+          <div class="toolbar-search dark:!bg-[#060818]">
+            <en-table-search @search="searchEvent" @advancedSearch="advancedSearchEvent" :placeholder="$t('place')+$t('warechouse_sn')" advanced advancedWidth="465">
             </en-table-search>
           </div>
         </div>
       </template>
 
-      <template #table-columns>
+      <template #table-columns >
         <el-table-column type="selection" width="55" />
         <el-table-column prop="warehouse.sn" :label="$t('warechouse_sn')"></el-table-column>
-        <el-table-column prop="warehouse.name" :label="$t('warechouse_name')"></el-table-column>
+        <el-table-column class="dark:!bg-[#060818]" prop="warehouse.name" :label="$t('warechouse_name')"></el-table-column>
         <el-table-column prop="code" :label="$t('warechouse_code')" />
         <el-table-column prop="type" :label="$t('warechouse_area')">
           <template #default="scope">{{ statusFilter(scope.row.type) }}</template>

+ 28 - 27
src/views/stock/goodsTransfer.vue

@@ -4,23 +4,22 @@
       <el-form ref="advancedForm" :model="advancedForm" label-width="160px">
         <el-row>
           <el-col :span="6">
-            <el-form-item label="仓库">
+            <el-form-item :label="$t('warechouse')">
               <el-select v-model="advancedForm.warehouse_id" clearable>
                 <el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="商品编号/sku/序列号">
-              <el-input v-model="advancedForm.keyword" clearable placeholder="请输入内容" width="200px"></el-input>
+            <el-form-item :label="$t('goods_sn')+'/'+'sku'">
+              <el-input v-model="advancedForm.keyword" clearable :placeholder="$t('place')+$t('content')" width="200px"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <div class="flex justify-end">
-        <el-button class="mr-3" @click="advancedSearchEvent"> 搜索 </el-button>
+        <el-button class="mr-3" @click="advancedSearchEvent"> {{$t('search')}} </el-button>
       </div>
-      <!-- <el-button @click="advancedSearchEvent"> 搜索 </el-button> -->
     </div>
     <en-table-layout :tableData="tableData.data" ref="table" :loading="loading"
       @selection-change="handleSelectionChange">
@@ -28,14 +27,14 @@
         <div class="inner-toolbar">
           <div class="toolbar-btns">
             <el-button size="mini" type="primary" v-if="checkPermission(['updateWarnStock:update']) && store.state.user.user.founder!==1" @click="handleSubmitGoodsTransfer">设置预警库存</el-button>
-            <el-button size="mini" type="primary" v-if="store.state.user.user.founder!==1" @click="checkExport">导出</el-button>
+            <!-- <el-button size="mini" type="primary" v-if="store.state.user.user.founder!==1" @click="checkExport">导出</el-button> -->
           </div>
         </div>
       </template>
 
       <template #table-columns>
         <el-table-column type="selection" width="55" />
-        <el-table-column prop="warehouse_name" label="仓库名称">
+        <el-table-column prop="warehouse_name" :label="$t('warechouse_name')">
         </el-table-column>
         <!-- <el-table-column label="商品编号" prop="sn">
         </el-table-column>
@@ -44,22 +43,22 @@
             {{ scope.row.product_vo.hire_or_sail=='sail' ? '售卖商品' : '租赁商品'  }}
           </template>
         </el-table-column> -->
-        <el-table-column prop="product_name" label="商品名称" />
+        <el-table-column prop="product_name" :label="$t('goods_name')" />
         <el-table-column prop="type" label="sku">
           <template #default="scope">
             {{ scope.row.product_vo ? scope.row.product_vo.sku : ''  }}
           </template>
         </el-table-column>
-        <el-table-column prop="goods_unit" label="单位" />
-        <el-table-column prop="actual_stock" label="实际库存">
+        <el-table-column prop="goods_unit" :label="$t('goods_unit')" />
+        <el-table-column prop="actual_stock" :label="$t('goods_unit')">
           <template #default="scope">
             <span :style="Number(scope.row.actual_stock)<Number(scope.row.warning_stock)?'color:red':''">{{ scope.row.actual_stock }}</span> 
           </template>
         </el-table-column>
-        <el-table-column prop="usable_stock" label="可用库存" />
-        <el-table-column prop="transit_stock" label="在途库存" />
-        <el-table-column prop="locked_stock" label="冻结库存" />
-        <el-table-column prop="warning_stock" label="预警库存" />
+        <el-table-column prop="usable_stock" :label="$t('usable_stock')" />
+        <el-table-column prop="transit_stock" :label="$t('transit_stock')" />
+        <el-table-column prop="locked_stock" :label="$t('locked_stock')" />
+        <el-table-column prop="warning_stock" :label="$t('warning_stock')" />
       <!--   <el-table-column label="操作" width="250">
           <template #default="scope">
             <el-button type="success1" size="mini" v-if="checkPermission(['goodsTransfer:add']) && scope.row.transit_stock>0"
@@ -75,25 +74,25 @@
         </el-pagination>
       </template>
     </en-table-layout>
-    <el-dialog title="在途明细" v-model:visible="dialogVisible" append-to-body :close-on-click-modal="false"
+    <el-dialog :title="$t('transitDetails')" v-model:visible="dialogVisible" append-to-body :close-on-click-modal="false"
       :close-on-press-escape="false">
       <el-table :data="transitDetails" border class="sku-table">
-        <el-table-column prop="order_sn" label="订单编号" />
-        <el-table-column prop="num" label="在途数量" />
-        <el-table-column prop="end_time" label="返回日期" />
+        <el-table-column prop="order_sn" :label="$t('order_sn')" />
+        <el-table-column prop="num" :label="$t('transit_num')" />
+        <el-table-column prop="end_time" :label="$t('return_date')" />
       </el-table>
     </el-dialog>
-    <el-dialog title="设置预警数量" v-model:visible="numDialogVisible" append-to-body :close-on-click-modal="false"
+    <el-dialog :title="$t('setNumber')" v-model:visible="numDialogVisible" append-to-body :close-on-click-modal="false"
       :close-on-press-escape="false" width="30%">
       <el-form ref="numAddForm" :model="numAddForm" :rules="numAddFormRule" label-width="160px" inline
         class="change-form">
-        <el-form-item label="预警数量" prop="num" class="change-form-item">
-          <el-input v-model="numAddForm.num" placeholder="请输入"></el-input>
+        <el-form-item :label="$('warningQuantity')" prop="num" class="change-form-item">
+          <el-input v-model="numAddForm.num" :placeholder="$('place')"></el-input>
         </el-form-item>
       </el-form>
       <template #footer>
-        <el-button @click="numDialogVisible = false">取 消</el-button>
-        <el-button @click="submitNum" type="primary">确 定</el-button>
+        <el-button @click="numDialogVisible = false">{{$('cancel')}}</el-button>
+        <el-button @click="submitNum" type="primary">{{$('submit')}}</el-button>
       </template>
     </el-dialog>
   </div>
@@ -109,7 +108,9 @@ import { useRouter, useRoute } from 'vue-router';
 import { ElMessageBox, ElMessage } from 'element-plus';
 /* import EnTableLayout from '@/components/TableLayout/index.vue';
 import EnTableSearch from '@/components/TableSearch/index.vue'; */
+import { useI18n } from 'vue-i18n';
 
+const { t } = useI18n();
 const store = useStore();
 const router = useRouter();
 const route = useRoute();
@@ -134,13 +135,13 @@ const stockListId = ref([]);
 const numAddFormRule = reactive({
   num: [ {
       required: true,
-      message: '请输入预警库存数量',
+      message: t('place') + t('warningQuantity'),
       trigger: 'blur'
     },
     {
       validator: (rule, value, callback) => {
         if (/^(?:[1-9]\d*)$/.test(value) == false) {
-          callback(new Error("请输入正整数"));
+          callback(new Error(t('place') + t('integer')));
         } else {
           callback();
         }
@@ -181,7 +182,7 @@ const submitNum = () => {
       API_GoodsTransfer.updateWarnStock({ stock_id: stockListId.value, warn_num: numAddForm.value.num }).then(res => {
         numDialogVisible.value = false;
         numAddForm.value = {};
-        ElMessage.success('预警库存设置成功!');
+        ElMessage.success(t('warning_stock')+t('set_success')+'!');
         GET_GoodsTransferList();
       });
     }
@@ -208,7 +209,7 @@ const lookTransit = (row) => {
 };
 
 const handleSubmitGoodsTransfer = () => {
-  if (stockListId.value.length == 0) return ElMessage.error("请选择");
+  if (stockListId.value.length == 0) return ElMessage.error(t('place'));
   numDialogVisible.value = true;
 };
 

+ 15 - 15
src/views/stock/outbound.vue

@@ -4,7 +4,7 @@
       <el-form ref="advancedFormRef" :model="advancedForm" label-width="160px">
         <el-row>
           <el-col :span="activeName === 'first' ? 12 : 8">
-            <el-form-item label="出库时间">
+            <el-form-item :label="$t('outBound')">
               <el-date-picker
                 v-model="advancedForm.goodsExchange_time_range"
                 type="daterange"
@@ -14,8 +14,8 @@
                 :clearable="true"
                 :default-time="['00:00:00', '23:59:59']"
                 range-separator="-"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
+                :start-placeholder="$t('start_time')"
+                :end-placeholder="$t('end_time')"
                 value-format="timestamp"
                 :picker-options="{
                   disabledDate(time) {
@@ -27,7 +27,7 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="仓库">
+            <el-form-item :label="$t('warechouse')">
               <el-select v-model="advancedForm.warehouse_id" clearable>
                 <el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
@@ -53,7 +53,7 @@
         </el-row>
       </el-form>
       <div class="flex justify-end">
-        <el-button class="mr-3" @click="advancedSearchEvent"> 搜索 </el-button>
+        <el-button class="mr-3" @click="advancedSearchEvent"> {{$t('search')}} </el-button>
       </div>
     </div>
 
@@ -71,12 +71,12 @@
 
       <template #table-columns>
         <el-table-column type="selection" width="55" />
-        <el-table-column prop="sn" label="出库单号">
+        <el-table-column prop="sn" :label="$t('out_sn')">
           <template #default="scope">
             {{ scope.row.sn }}
           </template>
         </el-table-column>
-        <el-table-column prop="warehouse_id" label="仓库名称">
+        <el-table-column prop="warehouse_id" :label="$t('warechouse_name')">
           <template #default="scope">
             {{ warehouseName(scope.row.warehouse_id) }}
           </template>
@@ -91,37 +91,37 @@
             {{ scope.row.customer_phone }}
           </template>
         </el-table-column> -->
-        <el-table-column prop="memo" label="出库类型">
+        <el-table-column :label="$t('out_type')">
           <template #default="scope">
             <span>{{ outName(scope.row.type) }}</span>
           </template>
         </el-table-column>
       <!--   <el-table-column prop="order_id_list" label="订单编号" /> -->
-        <el-table-column label="状态">
+        <el-table-column :label="$t('warehousing_state')">
           <template #default="scope">
-            <span>{{ scope.row.has_submit === 'Y' ? '已出库' : '未出库' }}</span>
+            <span>{{ scope.row.has_submit === 'Y' ? $t('inOut') : $t('notOut') }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="memo" label="出库时间">
+        <el-table-column  :label="$t('outTime')">
           <template #default="scope">
             <span>{{ scope.row.create_time }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="memo" label="备注">
+        <el-table-column  :label="$t('notes')">
           <template #default="scope">
             <span>{{ scope.row.notes }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="操作" width="300">
+        <el-table-column :label="$t('operate')" width="300">
           <template #default="scope">
             <!-- v-if="checkPermission(['checkInventory'])" -->
-            <el-button size="mini"  @click="handleAuditGoodsExchange(scope.row)">查看</el-button>
+            <el-button size="mini"  @click="handleAuditGoodsExchange(scope.row)">{{$('view')}}</el-button>
             <!-- && checkPermission(['editInventory']) && checkPermission(['goodsExchangeEdit']) -->
             <el-button
               size="mini"
               v-if="scope.row.has_submit === 'N' && store.state.user.user.founder!==1"
               @click="handleEditGoodsExchange(scope.row)"
-              >出库</el-button
+              >{{$('outBound')}}</el-button
             >
           </template>
         </el-table-column>

+ 36 - 20
src/views/stock/warehouseList.vue

@@ -4,7 +4,13 @@
       <template #toolbar>
         <div class="inner-toolbar w-11/12 flex justify-between">
           <div class="toolbar-btns">
-            <el-button size="mini" v-if="checkPermission(['warehouse:add']) && store.state.user.user.founder!==1" type="primary" @click="handleAddWarehouse">{{ $t('add') }}</el-button>
+            <el-button
+              size="mini"
+              v-if="checkPermission(['warehouse:add']) && store.state.user.user.founder !== 1"
+              type="primary"
+              @click="handleAddWarehouse"
+              >{{ $t('add') }}</el-button
+            >
           </div>
           <div class="toolbar-search">
             <en-table-search @search="searchEvent" :placeholder="$t('search_placeholde')" />
@@ -24,7 +30,12 @@
         <el-table-column prop="description" :label="$t('warechouse_remark')" />
         <el-table-column :label="$t('operate')">
           <template #default="scope">
-            <el-button size="mini" v-if="checkPermission(['warehouse:update'])&& store.state.user.user.founder!==1" @click="handleEditWarehouse(scope.$index, scope.row)">{{ $t('edit') }}</el-button>
+            <el-button
+              size="mini"
+              v-if="checkPermission(['warehouse:update']) && store.state.user.user.founder !== 1"
+              @click="handleEditWarehouse(scope.$index, scope.row)"
+              >{{ $t('edit') }}</el-button
+            >
           </template>
         </el-table-column>
       </template>
@@ -54,31 +65,36 @@
     >
       <el-form :model="stockForm" :rules="stockRules" ref="stockFormRef" label-width="160px">
         <el-form-item :label="$t('warechouse_sn')" prop="sn">
-          <el-input v-model="stockForm.sn" :minlength="2" :maxlength="4" clearable :placeholder="$t('place')+$t('warechouse_sn')"></el-input>
+          <el-input v-model="stockForm.sn" :minlength="2" :maxlength="4" clearable :placeholder="$t('place') + $t('warechouse_sn')"></el-input>
         </el-form-item>
         <el-form-item :label="$t('warechouse_name')" prop="name">
-          <el-input v-model="stockForm.name" :minlength="2" :maxlength="20" clearable :placeholder="$t('place')+$t('warechouse_name')"></el-input>
+          <el-input v-model="stockForm.name" :minlength="2" :maxlength="20" clearable :placeholder="$t('place') + $t('warechouse_name')"></el-input>
         </el-form-item>
         <el-form-item :label="$t('warechouse_user_name')">
-          <el-input v-model="stockForm.user_name" :minlength="2" :maxlength="20" clearable :placeholder="$t('place')+$t('warechouse_user_name')"></el-input>
+          <el-input v-model="stockForm.user_name" :minlength="2" :maxlength="20" clearable :placeholder="$t('place') + $t('warechouse_user_name')"></el-input>
         </el-form-item>
         <el-form-item :label="$t('warechouse_phone')" prop="phone">
-          <el-input v-model="stockForm.phone" :minlength="2" :maxlength="20" clearable :placeholder="$t('place')+$t('warechouse_phone')"></el-input>
+          <el-input v-model="stockForm.phone" :minlength="2" :maxlength="20" clearable :placeholder="$t('place') + $t('warechouse_phone')"></el-input>
         </el-form-item>
         <el-form-item :label="$t('warechouse_address')">
           <el-cascader size="large" :options="options" clearable v-model="selectedOptions"> </el-cascader>
           <span>
-            <el-input style="margin-top: 10px" v-model="stockForm.warehouse_address" :placeholder="$t('place')+$t('warechouse_address')"></el-input>
+            <el-input style="margin-top: 10px" v-model="stockForm.warehouse_address" :placeholder="$t('place') + $t('warechouse_address')"></el-input>
           </span>
         </el-form-item>
         <el-form-item :label="$t('warechouse_remark')" prop="description">
-          <el-input v-model="stockForm.description" type="textarea" :autosize="{ minRows: 3, maxRows: 4 }" :placeholder="$t('place')+$t('warechouse_remark')"></el-input>
+          <el-input
+            v-model="stockForm.description"
+            type="textarea"
+            :autosize="{ minRows: 3, maxRows: 4 }"
+            :placeholder="$t('place') + $t('warechouse_remark')"
+          ></el-input>
         </el-form-item>
       </el-form>
       <template #footer>
         <div class="dialog-footer">
-          <el-button @click="dialogVisible = false">{{$t('cancel')}}</el-button>
-          <el-button type="primary" @click="submitWarehouseForm">{{$t('submit')}}</el-button>
+          <el-button @click="dialogVisible = false">{{ $t('cancel') }}</el-button>
+          <el-button type="primary" @click="submitWarehouseForm">{{ $t('submit') }}</el-button>
         </div>
       </template>
     </el-dialog>
@@ -88,7 +104,7 @@
 <script lang="ts" setup>
 import { ref, onMounted } from 'vue';
 import { useStore } from 'vuex';
-import { ElMessageBox,FormInstance,ElMessage } from 'element-plus';
+import { ElMessageBox, FormInstance, ElMessage } from 'element-plus';
 import * as API_BasicSetting from '@/api/basicSetting';
 import * as API_Setting from '@/api/setting';
 import * as API_Auth from '@/api/auth';
@@ -110,12 +126,12 @@ const stockForm = ref<any>({
   phone: '',
   warehouse_address: '',
   description: '',
-  ware_pro_city_area: []
+  ware_pro_city_area: [],
 });
 /* console.log(store.state.companId); */
 const stockRules = ref<any>({
-  sn: [{ required: true, message: t('place')+t('warechouse_sn'), trigger: 'blur' }],
-  name: [{ required: true, message: t('place')+t('warechouse_name'), trigger: 'blur' }],
+  sn: [{ required: true, message: t('place') + t('warechouse_sn'), trigger: 'blur' }],
+  name: [{ required: true, message: t('place') + t('warechouse_name'), trigger: 'blur' }],
   phone: [
     // { required: true, message: '请输入手机号码!', trigger: 'blur' },
     // { pattern: /^1[3456789]\d{9}$/, message: '手机号码格式不正确', trigger: 'blur' }, options: regionData,
@@ -190,21 +206,21 @@ const submitWarehouseForm = () => {
       if (id) {
         API_BasicSetting.editWarehouse(id, params).then(() => {
           dialogVisible.value = false;
-          ElMessage.success(t('edit_success'))
+          ElMessage.success(t('edit_success'));
           //store.dispatch('showMessage', { message: '修改成功!', type: 'success' });
           GET_WarehouseList();
         });
       } else {
         API_BasicSetting.addWarehouse(params).then(() => {
           dialogVisible.value = false;
-          ElMessage.success(t('add_success'))
-     /*      store.dispatch('showMessage', { message: '添加成功!', type: 'success' }); */
+          ElMessage.success(t('add_success'));
+          /*      store.dispatch('showMessage', { message: '添加成功!', type: 'success' }); */
           GET_WarehouseList();
         });
       }
     } else {
-      ElMessage.error(t('form_erroe'))
-   /*    store.dispatch('showMessage', { message: '表单填写有误,请核对!', type: 'error' }); */
+      ElMessage.error(t('form_erroe'));
+      /*    store.dispatch('showMessage', { message: '表单填写有误,请核对!', type: 'error' }); */
       return false;
     }
   });
@@ -212,7 +228,7 @@ const submitWarehouseForm = () => {
 
 const GET_WarehouseList = () => {
   loading.value = true;
-  params.value.company_id=store.state.companId
+  params.value.company_id = store.state.companId;
   API_BasicSetting.warehouse(params.value)
     .then((response) => {
       loading.value = false;

+ 20 - 36
src/views/stock/warehousing.vue

@@ -5,7 +5,7 @@
       <el-form ref="advancedFormRef" :model="advancedForm" label-width="100px">
         <el-row>
           <el-col :span="activeName === 'first' ? 12 : 8">
-            <el-form-item label="出入时间">
+            <el-form-item :label="$t('access_time')">
               <el-date-picker
                 v-model="advancedForm.goodsExchange_time_range"
                 type="daterange"
@@ -15,8 +15,8 @@
                 :clearable="true"
                 :default-time="['00:00:00', '23:59:59']"
                 range-separator="-"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
+                :start-placeholder="$t('start_time')"
+                :end-placeholder="$t('end_time')"
                 value-format="timestamp"
                 :picker-options="{
                   disabledDate(time) {
@@ -28,33 +28,33 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="仓库">
+            <el-form-item :label="$t('warechouse')">
               <el-select v-model="advancedForm.warehouse_id" clearable>
                 <el-option v-for="item in warehouseList" :key="item.id" :label="item.name" :value="item.id" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="入库类型">
+            <el-form-item :label="$t('storage_type')">
               <el-select v-model="advancedForm.type" clearable>
                 <el-option v-for="item in entryList" :key="item.id" :label="item.label" :value="item.value" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="客户名称">
-              <el-input v-model="advancedForm.customer_name" clearable placeholder="请输入客户名称"></el-input>
+            <el-form-item :label="$t('customer_name')">
+              <el-input v-model="advancedForm.customer_name" clearable :placeholder="$t('change')+$t('customer_name')"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="手机号">
-              <el-input v-model="advancedForm.customer_phone" clearable placeholder="请输入手机号"></el-input>
+            <el-form-item :label="$t('phone')">
+              <el-input v-model="advancedForm.customer_phone" clearable :placeholder="$t('change')+$t('phone')"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
       </el-form>
       <div class="flex justify-end">
-        <el-button class="mr-3" @click="advancedSearchEvent"> 搜索 </el-button>
+        <el-button class="mr-3" @click="advancedSearchEvent"> {{$t('search')}} </el-button>
       </div>
     </div>
 
@@ -69,58 +69,42 @@
 
       <template #table-columns>
         <el-table-column type="selection" width="55" />
-        <!-- <el-table-column v-if="activeName === 'first'" prop="sn" label="出库单号">
-          <template #default="scope">
-            {{ scope.row.sn }}v-if="checkPermission(['addInventory'])"
-          </template>
-        </el-table-column> -->
-        <el-table-column prop="sn" label="入库单号">
+        <el-table-column prop="sn" :label="$t('warehousing_sn')">
           <template #default="scope">
             {{ scope.row.sn }}
           </template>
         </el-table-column>
-        <el-table-column prop="warehouse_id" label="仓库名称">
+        <el-table-column prop="warehouse_id" :label="$t('warechouse_name')">
           <template #default="scope">
             {{ warehouseName(scope.row.warehouse_id) }}
           </template>
         </el-table-column>
-         <!--<el-table-column prop="warehouse_id" label="客户名称">
-          <template #default="scope">
-            {{ scope.row.customer_name }}
-          </template>
-        </el-table-column> 
-        <el-table-column prop="warehouse_id" label="客户手机号">
-          <template #default="scope">
-            {{ scope.row.customer_phone }}
-          </template>
-        </el-table-column>-->
-        <el-table-column prop="memo" label="入库类型">
+        <el-table-column :label="$t('warehousing_type')">
           <template #default="scope">
             <span>{{ entryName(scope.row.type) }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="memo" label="入库时间">
+        <el-table-column  :label="$t('warehousing_time')">
           <template #default="scope">
             <span>{{ scope.row.create_time }}</span>
           </template>
         </el-table-column>
-        <!-- <el-table-column prop="order_id_list" label="订单编号" /> -->
-        <el-table-column label="状态">
+        <el-table-column :label="$t('warehousing_state')">
           <template #default="scope">
-            <span>{{ scope.row.has_submit === 'Y' ? '已入库' : '未入库' }}</span>
+            <span>{{ scope.row.has_submit === 'Y' ? $t('inStock') : $t('notStock') }}</span>
           </template>
         </el-table-column>
-        <el-table-column prop="memo" label="备注">
+        <el-table-column prop="memo" :label="$t('notes')">
           <template #default="scope">
             <span>{{ scope.row.memo }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="操作">
+        <el-table-column :label="$t('operate')">
           <template #default="scope">
             <!-- v-if="checkPermission(['checkInventory'])" -->
-            <el-button class="mr-1 mt-1" size="mini" @click="handleAuditGoodsExchange(scope.row)">查看</el-button>
+            <el-button class="mr-1 mt-1" size="mini" @click="handleAuditGoodsExchange(scope.row)">{{$t('view')}}</el-button>
             <!-- && checkPermission(['editInventory']) && checkPermission(['goodsExchangeEdit']) -->
-            <el-button size="mini" class="!ml-0 mt-1" v-if="scope.row.has_submit === 'N' && store.state.user.user.founder!==1" @click="handleEditGoodsExchange(scope.row)">入库</el-button>
+            <el-button size="mini" class="!ml-0 mt-1" v-if="scope.row.has_submit === 'N' && store.state.user.user.founder!==1" @click="handleEditGoodsExchange(scope.row)">{{$t('warehousing')}}</el-button>
           </template>
         </el-table-column>
       </template>