YangJian0701 1 year ago
parent
commit
cf1b6030c7
3 changed files with 268 additions and 16 deletions
  1. 14 0
      src/views/salary/Reimburse.vue
  2. 238 0
      src/views/salary/ReimburseMy.vue
  3. 16 16
      vite.config.ts

+ 14 - 0
src/views/salary/Reimburse.vue

@@ -0,0 +1,14 @@
+<template>
+    <div class="reimburse">
+        报销管理
+    </div>
+</template>
+<script setup lang="ts">
+
+</script>
+<style lang="scss">
+.reimburse{
+    height: 50px;
+    background: #fff;
+}
+</style>

+ 238 - 0
src/views/salary/ReimburseMy.vue

@@ -0,0 +1,238 @@
+<template>
+    <div class="reimburseMy">
+        <div class="reimburseMy-table">
+            <el-table :data="data.tableData" style="width: 100%" border>
+                <el-table-column :show-overflow-tooltip="true" type="index" width="50" />
+                <el-table-column :show-overflow-tooltip="true" prop="date" label="ID" width="180" />
+                <el-table-column :show-overflow-tooltip="true" prop="address" label="报销总金额" width="180" />
+                <el-table-column :show-overflow-tooltip="true" prop="address" label="打款金额" width="180" />
+                <el-table-column :show-overflow-tooltip="true" prop="date" label="状态" width="150">
+                    <el-tag>已审核</el-tag>
+                    <el-tag>已部分打款</el-tag>
+                    <el-tag>已全部打款</el-tag>
+                    <el-tag class="ml-2" type="warning">待审核</el-tag>
+                    <el-tag class="ml-2" type="danger">未提交审核</el-tag>
+                </el-table-column>
+                <el-table-column :show-overflow-tooltip="true" prop="name" label="提交日期" width="220" />
+                <el-table-column label="操作" fixed="right" min-width="320">
+                    <template #default="scope">
+                        <el-button @click="showDrawer('det')">详情</el-button>
+                        <el-button @click="showDrawer('edi')">编辑</el-button>
+                        <el-button @click="showDrawer('sub')">提交审核</el-button>
+                    </template>
+                </el-table-column>
+            </el-table>
+            <el-pagination v-model:current-page="data.currentPage4" layout="total, sizes, prev, pager, next, jumper"
+                :total="400" @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                style="margin-top: 20px;" />
+        </div>
+        <el-drawer v-model="data.drawer" :title="data.drawerTiti" direction="rtl" :before-close="handleClose" size="90%">
+
+            <el-form :model="data.formData" label-position="top">
+                <el-form-item label="报销总金额">
+                    <div style="display: flex;">
+                        <el-input v-model="data.formData.name" style="flex: 1;" /><span style="padding-left: 20px;">元</span>
+                    </div>
+                </el-form-item>
+                <el-form-item label="报销明细">
+                    <el-table :data="data.tableData" style="width: 100%">
+                        <el-table-column type="index" label="序号" width="70" />
+                        <el-table-column label="出差地点">
+                            <el-table-column label="起" width="150">
+                                <template #default="scope">
+                                    <el-input v-model="data.value1" placeholder="起点"
+                                        :disabled="data.disabledNum == scope.$index ? false : true" />
+                                </template>
+                            </el-table-column>
+                            <el-table-column prop="city" label="止" width="150">
+                                <template #default="scope">
+                                    <el-input v-model="data.value1" placeholder="起点"
+                                        :disabled="data.disabledNum == scope.$index ? false : true" />
+                                </template>
+                            </el-table-column>
+                        </el-table-column>
+                        <el-table-column prop="address" label="出差时间起止时间" width="250">
+                            <template #default="scope">
+                                <el-date-picker v-model="data.value1" type="daterange" style="width: 220px;"
+                                    :disabled="data.disabledNum == scope.$index ? false : true" />
+                            </template>
+
+                        </el-table-column>
+
+                        <el-table-column prop="address" label="费用类型" width="150">
+
+                            <template #default="scope">
+                                <el-select v-model="data.value1" class="m-2" placeholder="费用类型" size="large"
+                                    :disabled="data.disabledNum == scope.$index ? false : true">
+                                    <el-option v-for="item in options" :key="item.value" :label="item.label"
+                                        :value="item.value" />
+                                </el-select>
+                            </template>
+                        </el-table-column>
+                        <el-table-column prop="address" label="费用明细" width="150">
+                            <template #default="scope">
+                                <el-select v-model="data.value1" class="m-2" placeholder="费用明细" size="large"
+                                    :disabled="data.disabledNum == scope.$index ? false : true">
+                                    <el-option v-for="item in options" :key="item.value" :label="item.label"
+                                        :value="item.value" />
+                                </el-select>
+                            </template>
+                        </el-table-column>
+                        <el-table-column prop="address" label="费用金额" width="150">
+                            <template #default="scope">
+                                <el-input v-model="data.value1" placeholder="费用金额" :disabled="data.disabledNum == scope.$index ? false : true" />
+                                </template>
+                        </el-table-column>
+                        <el-table-column prop="address" label="费用事由" width="150">
+                            <template #default="scope">
+                                <el-input v-model="data.value1" placeholder="费用事由" :disabled="data.disabledNum == scope.$index ? false : true" />
+                                </template>
+                        </el-table-column>
+                        <el-table-column prop="address" label="涉及项目" width="150">
+                            
+                            <template #default="scope">
+                                <el-input v-model="data.value1" placeholder="涉及项目" :disabled="data.disabledNum == scope.$index ? false : true" />
+                                </template>
+                        </el-table-column>
+
+                        <el-table-column prop="address" label="附件" width="150" />
+                        <el-table-column prop="address" fixed="right" width="300">
+                            <template #header>
+                                <el-button type="danger" @click="newAdd">新增明细</el-button>
+                            </template>
+                            <template #default="scope">
+                                <el-button type="primary" @click="EditFun(scope)">编辑</el-button>
+                                <el-button @click="newDel(scope)">删除</el-button>
+                            </template>
+                        </el-table-column>
+                    </el-table>
+                </el-form-item>
+                <el-form-item label="打款明细">
+                    <el-table :data="data.tableData" style="width: 30%" border>
+                        <el-table-column type="index" label="序号" fixed width="60" />
+                        <el-table-column prop="address" label="打款时间" />
+                        <el-table-column prop="address" label="打款金额" />
+                    </el-table>
+                </el-form-item>
+            </el-form>
+            <div class="demo-drawer__footer">
+                <el-button type="primary">立即提交</el-button>
+                <el-button @click="data.drawer = false">取消</el-button>
+            </div>
+        </el-drawer>
+
+    </div>
+</template>
+<script setup lang="ts">
+import { reactive } from "vue";
+const options = [
+    {
+        value: 'Option1',
+        label: 'Option1',
+    },
+    {
+        value: 'Option2',
+        label: 'Option2',
+    },
+    {
+        value: 'Option3',
+        label: 'Option3',
+    },
+    {
+        value: 'Option4',
+        label: 'Option4',
+    },
+    {
+        value: 'Option5',
+        label: 'Option5',
+    },
+]
+const data = reactive({
+    disabledNum: 0,
+    value1: null,
+    formData: {
+        name: ''
+    },
+    drawer: false,
+    drawerTiti: '',
+    currentPage4: 4,
+    tableData: [
+        {
+            date: '2016-05-03',
+            name: '2016-05-03 12:13:00',
+            address: '3000',
+        },
+        {
+            date: '2016-05-02',
+            name: '2016-05-03 12:13:00',
+            address: '6000',
+        },
+        {
+            date: '2016-05-04',
+            name: '2016-05-03 12:13:00',
+            address: '99999999',
+        },
+        {
+            date: '2016-05-01',
+            name: '2016-05-03 12:13:00',
+            address: '10',
+        },
+    ]
+})
+const handleSizeChange = (val: number) => {
+    console.log(`${val} items per page`)
+}
+const handleCurrentChange = (val: number) => {
+    console.log(`current page: ${val}`)
+}
+//显示弹窗
+const showDrawer = (e: string) => {
+    switch (e) {
+        case 'det':
+            data.drawer = true
+            data.drawerTiti = '详情'
+            break;
+        case 'edi':
+            data.drawer = true
+            data.drawerTiti = '编辑'
+            break;
+        default:
+            console.log('提交审核')
+            break;
+    }
+
+}
+//关闭弹窗
+const handleClose = () => {
+    data.drawer = false
+}
+//点击了编辑
+const EditFun = (e:any)=>{
+    data.disabledNum = e.$index
+}
+//添加任务
+const newAdd = () => {
+    data.tableData.push({
+        date: '',
+        name: '',
+        address: '',
+    })
+    data.disabledNum = data.tableData.length-1
+}
+//删除任务
+const newDel = (e: any) => {
+
+    data.tableData.splice(e.$index, 1)
+    console.log('e', data.tableData)
+}
+</script>
+<style lang="scss">
+.reimburseMy {
+    &-table {
+        padding: 20px;
+        background: #fff;
+        border: 1px solid var(--el-card-border-color);
+        box-shadow: var(--el-box-shadow-light);
+        border-radius: 5px;
+    }
+}</style>

+ 16 - 16
vite.config.ts

@@ -29,22 +29,22 @@ export default defineConfig(({ mode }: ConfigEnv): UserConfig => {
     },
     server: {
       open: true,
-      host: '0.0.0.0'
-      // proxy: {
-      //   '/api': {
-      //     target: 'https://erp.baozhida.cn',
-      //     changeOrigin: true,
-      //     rewrite: path => path.replace(/^\/api/, '/testapi')
-      //   },
-      //   '/testapi': {
-      //     target: 'https://erp.baozhida.cn',
-      //     changeOrigin: true
-      //   },
-      //   '/ams': {
-      //     target: 'http://erp.baozhida.cn',
-      //     changeOrigin: true
-      //   }
-      // }
+      host: '0.0.0.0',
+      proxy: {
+        '/api': {
+          target: 'https://erp.baozhida.cn',
+          changeOrigin: true,
+          rewrite: path => path.replace(/^\/api/, '/testapi')
+        },
+        '/testapi': {
+          target: 'https://erp.baozhida.cn',
+          changeOrigin: true
+        },
+        '/ams': {
+          target: 'http://erp.baozhida.cn',
+          changeOrigin: true
+        }
+      }
     },
     plugins: [
       vue(),