From 5f969cfa38009cb7444175c90fc354d5fe68593e Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期五, 07 十一月 2025 16:59:38 +0800
Subject: [PATCH] #

---
 src/main/webapp/views/erpWwreport/wwreport.html            |    4 
 src/main/webapp/views/erpBegindata/confirmedBegindata.html |  475 +++++++++++++++++++
 src/main/webapp/views/erpIcmo/icmo.html                    |  487 ++++++++++++++++++++
 src/main/webapp/views/erpBegindata/begindata.html          |  438 ++++++++++++++++++
 4 files changed, 1,402 insertions(+), 2 deletions(-)

diff --git a/src/main/webapp/views/erpBegindata/begindata.html b/src/main/webapp/views/erpBegindata/begindata.html
new file mode 100644
index 0000000..29fc84d
--- /dev/null
+++ b/src/main/webapp/views/erpBegindata/begindata.html
@@ -0,0 +1,438 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <title></title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" href="../../static/evn/index.css">
+</head>
+
+<body>
+<div id="app">
+    <el-card>
+        <el-form :inline="true">
+            <el-form-item label="寮�宸ユ棩鏈�">
+                <el-date-picker
+                        v-model="tableSearchParam.vouchDate"
+                        type="date"
+                        placeholder="閫夋嫨鏃ユ湡"
+                />
+            </el-form-item>
+            <el-form-item label="鐗╂枡鍚嶇О">
+                <el-input v-model="tableSearchParam.invName" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�"></el-input>
+            </el-form-item>
+            <el-form-item label="渚涘簲鍟�">
+                <el-select v-model="tableSearchParam.venId" placeholder="閫夋嫨渚涘簲鍟�" style="width: 240px" >
+                    <el-option
+                            v-for="item in options"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+                    />
+                </el-select>
+            </el-form-item>
+            <el-form-item label="">
+                <el-button type="primary" @click="search" circle >
+                    <el-icon><Search /></el-icon>
+                </el-button>
+            </el-form-item>
+        </el-form>
+        <el-form :inline="true">
+            <el-form-item label="">
+                <el-upload
+                        action="http://127.0.0.1:9090/basicinfo/begindata/readExcel"
+                        :show-file-list="false"
+                >
+                    <el-button type="primary">瀵煎叆</el-button>
+
+                </el-upload>
+
+            </el-form-item>
+            <el-form-item label="">
+                <el-button type="primary" @click="export1">瀵煎嚭</el-button>
+            </el-form-item>
+            <el-form-item label="">
+                <el-button type="danger" @click="selectDelete">鍒犻櫎</el-button>
+            </el-form-item>
+        </el-form>
+        <el-table :data="tableData" border style="width: 100%" row-key="id" @selection-change="handleSelectionChange" max-height="630" @cell-dblclick="dblclick">
+            <el-table-column type="selection" >
+            </el-table-column>
+            <el-table-column type="index" width="50" >
+            </el-table-column>
+            <el-table-column prop="vouchDate" label="鏃ユ湡" >
+            </el-table-column>
+            <el-table-column prop="venCode" label="鍔犲伐鍟嗙紪鐮�"  width="100">
+            </el-table-column>
+            <el-table-column prop="venName" label="鍔犲伐鍟嗗悕绉�" width="300" :show-overflow-tooltip="true">
+            </el-table-column>
+            <el-table-column prop="invCode" label="鐗╂枡缂栫爜"  :show-overflow-tooltip="true">
+            </el-table-column>
+            <el-table-column prop="invName" label="鐗╂枡鍚嶇О" width="200" :show-overflow-tooltip="true">
+            </el-table-column>
+            <el-table-column prop="invStd" label="鐗╂枡瑙勬牸">
+            </el-table-column>
+            <el-table-column prop="qty" label="鏈熷垵鏁伴噺">
+            </el-table-column>
+        </el-table>
+        <div style="margin-top: 10px">
+            <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                           :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"
+                           layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">
+            </el-pagination>
+        </div>
+
+        <el-dialog v-model="dialogVisible" fullscreen>
+            <el-form :inline="true" label-width="auto">
+                <el-form-item label="">
+                    <el-button type="primary"  @click="save">淇濆瓨</el-button>
+                </el-form-item>
+            </el-form>
+            <el-form :model="formData" label-width="auto" style="max-width: 600px">
+                <el-form-item label="鏃ユ湡" >
+                    <el-input v-model="formData.vouchDate" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="渚涘簲鍟嗙紪鐮�" >
+                    <el-input v-model="formData.venCode" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="渚涘簲鍟嗗悕绉�" >
+                    <el-input v-model="formData.venName" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="鐗╂枡浠g爜" >
+                    <el-input v-model="formData.invCode" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="鐗╂枡鍚嶇О" >
+                    <el-input v-model="formData.invName" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="鐗╂枡瑙勬牸" >
+                    <el-input v-model="formData.invStd" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="鏈熷垵鏁伴噺" required>
+                    <el-input v-model="formData.qty" type="number"></el-input>
+                </el-form-item>
+            </el-form>
+            <template #footer>
+                <div class="dialog-footer">
+                    <el-button @click="dialogVisible = false">鍏抽棴</el-button>
+                </div>
+            </template>
+        </el-dialog>
+
+    </el-card>
+</div>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script src="../../static/evn/vue.global.js"></script>
+<script src="../../static/evn/element-plus.js"></script>
+<script src="../../static/evn/icons-vue.js"></script>
+<script type="module">
+    // 瀵煎叆涓枃璇█鍖�
+    import zhCn from '../../static/js/erp/zh-cn.js';
+
+    const { createApp, ref, onMounted,onBeforeMount } = Vue;
+
+
+    const app = createApp({
+        setup() {
+            const currentPage = ref(1)
+            const pageSizes = ref([500,1000, 1500])
+            const pageSize = ref(500)
+            const pageTotal = ref(0)
+            const tableSearchParam = ref({
+                venId: null,
+                vouchDate: null,
+                invName:null
+            })
+            const tableData = ref([])
+
+            const selectList = ref([])
+
+            const options = ref([])
+
+            const dialogVisible = ref(false)
+            const formData = ref({})
+
+            function search(){
+                currentPage.value = 1
+                page()
+            }
+
+            function page(){
+                let data = JSON.parse(JSON.stringify(tableSearchParam.value))
+                data.curr = currentPage.value
+                data.limit = pageSize.value
+                const loading = ElementPlus.ElLoading.service({
+                    lock: true,
+                    text: 'Loading',
+                    background: 'rgba(0, 0, 0, 0.7)',
+                })
+                $.ajax({
+                    url: "http://127.0.0.1:9090/basicinfo/begindata/getList",
+                    headers: {
+                        'token': localStorage.getItem('token')
+                    },
+                    data: data,
+                    dataType: 'json',
+                    contentType: 'application/json;charset=UTF-8',
+                    method: 'GET',
+                    success: function(res) {
+                        if (res.code == 200) {
+                            tableData.value = res.data.records
+                            pageTotal.value = res.data.total
+                        } else if (res.code === 403) {
+                            top.location.href = baseUrl + "/";
+                        } else {
+                            ElementPlus.ElMessage({
+                                message: res.msg,
+                                type: 'error'
+                            });
+                        }
+                    },
+                    complete: function() {
+                        loading.close()
+                    }
+                });
+            }
+
+            function selectDelete(){
+                if (selectList.value.length === 0){
+                    ElementPlus.ElMessage({
+                        message: "璇峰厛閫夋嫨",
+                        type: 'error'
+                    });
+                    return ;
+                }
+                ElementPlus.ElMessageBox.confirm('纭畾鍒犻櫎鍚�?')
+                    .then(() => {
+                        const loading = ElementPlus.ElLoading.service({
+                            lock: true,
+                            text: 'Loading',
+                            background: 'rgba(0, 0, 0, 0.7)',
+                        })
+                        $.ajax({
+                            url:"http://127.0.0.1:9090/basicinfo/begindata/softDelete",
+                            data: JSON.stringify(selectList.value),
+                            dataType: 'json',
+                            contentType: 'application/json;charset=UTF-8',
+                            method: 'POST',
+                            success: function(res) {
+                                if (res.code == 200) {
+                                    ElementPlus.ElMessage({
+                                        message: "鍒犻櫎鎴愬姛",
+                                        type: 'success'
+                                    });
+
+                                } else if (res.code === 403) {
+                                    top.location.href = baseUrl + "/";
+                                } else {
+                                    ElementPlus.ElMessage({
+                                        message: res.msg,
+                                        type: 'error'
+                                    });
+                                }
+                            },
+                            complete: function() {
+                                page()
+                                dialogVisible.value = false
+                                loading.close();
+                            }
+                        });
+
+                    })
+            }
+
+            function save(){
+                ElementPlus.ElMessageBox.confirm('纭畾淇濆瓨鍚�?')
+                    .then(() => {
+                        const loading = ElementPlus.ElLoading.service({
+                            lock: true,
+                            text: 'Loading',
+                            background: 'rgba(0, 0, 0, 0.7)',
+                        })
+                        $.ajax({
+                            url:"http://127.0.0.1:9090/basicinfo/begindata/saveorupdate",
+                            data: JSON.stringify(formData.value),
+                            dataType: 'json',
+                            contentType: 'application/json;charset=UTF-8',
+                            method: 'POST',
+                            success: function(res) {
+                                if (res.code == 200) {
+                                    ElementPlus.ElMessage({
+                                        message: "淇濆瓨鎴愬姛",
+                                        type: 'success'
+                                    });
+
+                                } else if (res.code === 403) {
+                                    top.location.href = baseUrl + "/";
+                                } else {
+                                    ElementPlus.ElMessage({
+                                        message: res.msg,
+                                        type: 'error'
+                                    });
+                                }
+                            },
+                            complete: function() {
+                                page()
+                                dialogVisible.value = false
+                                loading.close();
+                            }
+                        });
+
+                    })
+            }
+
+            function export1(){
+                let data = JSON.parse(JSON.stringify(tableSearchParam.value))
+                ElementPlus.ElMessageBox.confirm('纭畾瀵煎嚭鍚�?')
+                    .then(() => {
+                        const loading = ElementPlus.ElLoading.service({
+                            lock: true,
+                            text: 'Loading',
+                            background: 'rgba(0, 0, 0, 0.7)',
+                        })
+                        $.ajax({
+                            url: "http://127.0.0.1:9090/basicinfo/begindata/export",
+                            data: data,
+                            contentType: 'application/json;charset=UTF-8',
+                            method: 'GET',
+                            xhrFields: {
+                                responseType: 'blob' // 閲嶈锛氭寚瀹氬搷搴旂被鍨�
+                            },
+                            success: function(data, status, xhr) {
+                                // 鑾峰彇鏂囦欢鍚�
+                                let fileName = '濮斿鏈熷垵琛�.xls';
+                                const contentDisposition = xhr.getResponseHeader('Content-Disposition');
+                                if (contentDisposition) {
+                                    const fileNameMatch = contentDisposition.match(/filename="?(.+)"?/);
+                                    if (fileNameMatch && fileNameMatch[1]) {
+                                        fileName = fileNameMatch[1];
+                                    }
+                                }
+
+                                // 鍒涘缓 Blob 瀵硅薄骞朵笅杞�
+                                const blob = new Blob([data], { type: 'application/vnd.ms-excel' });
+                                const url = window.URL.createObjectURL(blob);
+                                const link = document.createElement('a');
+                                link.href = url;
+                                link.download = fileName;
+                                document.body.appendChild(link);
+                                link.click();
+                                document.body.removeChild(link);
+                                window.URL.revokeObjectURL(url);
+
+                                ElementPlus.ElMessage({
+                                    message: "瀵煎嚭鎴愬姛",
+                                    type: 'success'
+                                });
+                            },
+                            error: function(xhr, status, error) {
+                                console.error('瀵煎嚭澶辫触:', error);
+                                ElementPlus.ElMessage({
+                                    message: "瀵煎嚭澶辫触",
+                                    type: 'error'
+                                });
+                            },
+                            complete: function (xhr, status){
+                                loading.close()
+                            }
+                        });
+                    })
+                    .catch(() => {
+                        // catch error
+                    })
+
+
+            }
+
+            function getVendor(){
+                $.ajax({
+                    url: "http://127.0.0.1:9090/basicinfo/vendor/getlistfordropdown",
+                    contentType: 'application/json;charset=UTF-8',
+                    method: 'GET',
+                    success: function(res) {
+                        if (res.code == 200) {
+                            res.data.map(item => {
+                                options.value.push({
+                                    value: item.venId, label: item.venName
+                                })
+                            })
+                        } else {
+                            ElementPlus.ElMessage({
+                                message: res.msg,
+                                type: 'error'
+                            });
+                        }
+                    }
+                });
+            }
+
+            function dblclick(val){
+                formData.value = JSON.parse(JSON.stringify(val)) ;
+                dialogVisible.value = true
+            }
+
+
+
+            function handleSizeChange(val) {
+                pageSize.value = val
+                currentPage.value = 1 // 閲嶇疆鍒扮涓�椤�
+                page()
+            }
+
+            function handleCurrentChange(val) {
+                currentPage.value = val
+                page()
+            }
+            function handleSelectionChange(val) {
+                selectList.value = val
+            }
+
+            onMounted(() => {
+                page()
+            })
+
+            onBeforeMount(() => {
+                getVendor()
+
+            })
+
+            return {
+                tableData,
+                currentPage,
+                pageSizes,
+                pageSize,
+                pageTotal,
+                tableSearchParam,
+                options,
+                dialogVisible,
+                formData,
+                search,
+                page,
+                save,
+                export1,
+                dblclick,
+                selectDelete,
+                handleSizeChange,
+                handleCurrentChange,
+                handleSelectionChange
+
+            }
+        }
+    });
+
+    app.use(ElementPlus, {
+        locale: zhCn.default || zhCn
+    });
+    for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
+        app.component(key, component)
+    }
+    app.mount('#app');
+</script>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/erpBegindata/confirmedBegindata.html b/src/main/webapp/views/erpBegindata/confirmedBegindata.html
new file mode 100644
index 0000000..dbe1fe0
--- /dev/null
+++ b/src/main/webapp/views/erpBegindata/confirmedBegindata.html
@@ -0,0 +1,475 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <title></title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" href="../../static/evn/index.css">
+</head>
+
+<body>
+<div id="app">
+    <el-card>
+        <el-form :inline="true">
+            <el-form-item label="寮�宸ユ棩鏈�">
+                <el-date-picker
+                        v-model="tableSearchParam.vouchDate"
+                        type="date"
+                        placeholder="閫夋嫨鏃ユ湡"
+                />
+            </el-form-item>
+            <el-form-item label="鐗╂枡鍚嶇О">
+                <el-input v-model="tableSearchParam.invName" placeholder="璇疯緭鍏ョ墿鏂欏悕绉�"></el-input>
+            </el-form-item>
+            <el-form-item label="渚涘簲鍟�">
+                <el-select v-model="tableSearchParam.venId" placeholder="閫夋嫨渚涘簲鍟�" style="width: 240px" >
+                    <el-option
+                            v-for="item in options"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"
+                    />
+                </el-select>
+            </el-form-item>
+            <el-form-item label="">
+                <el-button type="primary" @click="search" circle >
+                    <el-icon><Search /></el-icon>
+                </el-button>
+            </el-form-item>
+        </el-form>
+        <el-form :inline="true">
+            <el-form-item label="">
+                <el-button type="danger" @click="selectDelete">鍒犻櫎</el-button>
+            </el-form-item>
+            <el-form-item label="">
+                <el-button type="primary" @click="tongbu">鍚屾鏈熷垵</el-button>
+            </el-form-item>
+        </el-form>
+        <el-table :data="tableData" border style="width: 100%" row-key="id" @selection-change="handleSelectionChange" max-height="630" @cell-dblclick="dblclick">
+            <el-table-column type="selection" >
+            </el-table-column>
+            <el-table-column type="index" width="50" >
+            </el-table-column>
+            <el-table-column prop="vouchDate" label="鏃ユ湡" >
+            </el-table-column>
+            <el-table-column prop="venCode" label="鍔犲伐鍟嗙紪鐮�" width="100">
+            </el-table-column>
+            <el-table-column prop="venName" label="鍔犲伐鍟嗗悕绉�" width="300" :show-overflow-tooltip="true">
+            </el-table-column>
+            <el-table-column prop="invCode" label="鐗╂枡缂栫爜"  :show-overflow-tooltip="true">
+            </el-table-column>
+            <el-table-column prop="invName" label="鐗╂枡鍚嶇О" width="200" :show-overflow-tooltip="true">
+            </el-table-column>
+            <el-table-column prop="invStd" label="鐗╂枡瑙勬牸">
+            </el-table-column>
+            <el-table-column prop="qty" label="鏈熷垵鏁伴噺">
+            </el-table-column>
+        </el-table>
+        <div style="margin-top: 10px">
+            <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                           :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"
+                           layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">
+            </el-pagination>
+        </div>
+
+        <el-dialog v-model="dialogVisible" fullscreen>
+            <el-form :inline="true" label-width="auto">
+                <el-form-item label="">
+                    <el-button type="primary"  @click="save">淇濆瓨</el-button>
+                </el-form-item>
+            </el-form>
+            <el-form :model="formData" label-width="auto" style="max-width: 600px">
+                <el-form-item label="鏃ユ湡" >
+                    <el-input v-model="formData.vouchDate" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="渚涘簲鍟嗙紪鐮�" >
+                    <el-input v-model="formData.venCode" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="渚涘簲鍟嗗悕绉�" >
+                    <el-input v-model="formData.venName" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="鐗╂枡浠g爜" >
+                    <el-input v-model="formData.invCode" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="鐗╂枡鍚嶇О" >
+                    <el-input v-model="formData.invName" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="鐗╂枡瑙勬牸" >
+                    <el-input v-model="formData.invStd" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="鏈熷垵鏁伴噺" required>
+                    <el-input v-model="formData.qty" type="number"></el-input>
+                </el-form-item>
+            </el-form>
+            <template #footer>
+                <div class="dialog-footer">
+                    <el-button @click="dialogVisible = false">鍏抽棴</el-button>
+                </div>
+            </template>
+        </el-dialog>
+
+    </el-card>
+</div>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script src="../../static/evn/vue.global.js"></script>
+<script src="../../static/evn/element-plus.js"></script>
+<script src="../../static/evn/icons-vue.js"></script>
+<script type="module">
+    // 瀵煎叆涓枃璇█鍖�
+    import zhCn from '../../static/js/erp/zh-cn.js';
+
+    const { createApp, ref, onMounted,onBeforeMount } = Vue;
+
+
+    const app = createApp({
+        setup() {
+            const currentPage = ref(1)
+            const pageSizes = ref([500,1000, 1500])
+            const pageSize = ref(500)
+            const pageTotal = ref(0)
+            const tableSearchParam = ref({
+                venId: null,
+                vouchDate: null,
+                invName:null
+            })
+            const tableData = ref([])
+
+            const selectList = ref([])
+
+            const options = ref([])
+
+            const dialogVisible = ref(false)
+            const formData = ref({})
+
+            function search(){
+                currentPage.value = 1
+                page()
+            }
+
+            function page(){
+                let data = JSON.parse(JSON.stringify(tableSearchParam.value))
+                data.curr = currentPage.value
+                data.limit = pageSize.value
+                const loading = ElementPlus.ElLoading.service({
+                    lock: true,
+                    text: 'Loading',
+                    background: 'rgba(0, 0, 0, 0.7)',
+                })
+                $.ajax({
+                    url: "http://127.0.0.1:9090/basicinfo/begindata/getList1",
+                    headers: {
+                        'token': localStorage.getItem('token')
+                    },
+                    data: data,
+                    dataType: 'json',
+                    contentType: 'application/json;charset=UTF-8',
+                    method: 'GET',
+                    success: function(res) {
+                        if (res.code == 200) {
+                            tableData.value = res.data.records
+                            pageTotal.value = res.data.total
+                        } else if (res.code === 403) {
+                            top.location.href = baseUrl + "/";
+                        } else {
+                            ElementPlus.ElMessage({
+                                message: res.msg,
+                                type: 'error'
+                            });
+                        }
+                    },
+                    complete: function() {
+                        loading.close()
+                    }
+                });
+            }
+
+            function selectDelete(){
+                if (selectList.value.length === 0){
+                    ElementPlus.ElMessage({
+                        message: "璇峰厛閫夋嫨",
+                        type: 'error'
+                    });
+                    return ;
+                }
+                ElementPlus.ElMessageBox.confirm('纭畾鍒犻櫎鍚�?')
+                    .then(() => {
+                        const loading = ElementPlus.ElLoading.service({
+                            lock: true,
+                            text: 'Loading',
+                            background: 'rgba(0, 0, 0, 0.7)',
+                        })
+                        $.ajax({
+                            url:"http://127.0.0.1:9090/basicinfo/begindata/softDelete",
+                            data: JSON.stringify(selectList.value),
+                            dataType: 'json',
+                            contentType: 'application/json;charset=UTF-8',
+                            method: 'POST',
+                            success: function(res) {
+                                if (res.code == 200) {
+                                    ElementPlus.ElMessage({
+                                        message: "鍒犻櫎鎴愬姛",
+                                        type: 'success'
+                                    });
+
+                                } else if (res.code === 403) {
+                                    top.location.href = baseUrl + "/";
+                                } else {
+                                    ElementPlus.ElMessage({
+                                        message: res.msg,
+                                        type: 'error'
+                                    });
+                                }
+                            },
+                            complete: function() {
+                                page()
+                                dialogVisible.value = false
+                                loading.close();
+                            }
+                        });
+
+                    })
+            }
+
+            function tongbu(){
+                if (selectList.value.length === 0){
+                    ElementPlus.ElMessage({
+                        message: "璇峰厛閫夋嫨",
+                        type: 'error'
+                    });
+                    return ;
+                }
+                ElementPlus.ElMessageBox.confirm('纭畾鍚屾鍚�?')
+                    .then(() => {
+                        const loading = ElementPlus.ElLoading.service({
+                            lock: true,
+                            text: 'Loading',
+                            background: 'rgba(0, 0, 0, 0.7)',
+                        })
+                        $.ajax({
+                            url:"http://127.0.0.1:9090/basicinfo/begindata/tongbu",
+                            data: JSON.stringify(selectList.value),
+                            dataType: 'json',
+                            contentType: 'application/json;charset=UTF-8',
+                            method: 'POST',
+                            success: function(res) {
+                                if (res.code == 200) {
+                                    ElementPlus.ElMessage({
+                                        message: "鍚屾鎴愬姛",
+                                        type: 'success'
+                                    });
+
+                                } else if (res.code === 403) {
+                                    top.location.href = baseUrl + "/";
+                                } else {
+                                    ElementPlus.ElMessage({
+                                        message: res.msg,
+                                        type: 'error'
+                                    });
+                                }
+                            },
+                            complete: function() {
+                                page()
+                                loading.close();
+                            }
+                        });
+
+                    })
+            }
+
+            function save(){
+                ElementPlus.ElMessageBox.confirm('纭畾淇濆瓨鍚�?')
+                    .then(() => {
+                        const loading = ElementPlus.ElLoading.service({
+                            lock: true,
+                            text: 'Loading',
+                            background: 'rgba(0, 0, 0, 0.7)',
+                        })
+                        $.ajax({
+                            url:"http://127.0.0.1:9090/basicinfo/begindata/saveorupdate",
+                            data: JSON.stringify(formData.value),
+                            dataType: 'json',
+                            contentType: 'application/json;charset=UTF-8',
+                            method: 'POST',
+                            success: function(res) {
+                                if (res.code == 200) {
+                                    ElementPlus.ElMessage({
+                                        message: "淇濆瓨鎴愬姛",
+                                        type: 'success'
+                                    });
+
+                                } else if (res.code === 403) {
+                                    top.location.href = baseUrl + "/";
+                                } else {
+                                    ElementPlus.ElMessage({
+                                        message: res.msg,
+                                        type: 'error'
+                                    });
+                                }
+                            },
+                            complete: function() {
+                                page()
+                                dialogVisible.value = false
+                                loading.close();
+                            }
+                        });
+
+                    })
+            }
+
+            function export1(){
+                let data = JSON.parse(JSON.stringify(tableSearchParam.value))
+                ElementPlus.ElMessageBox.confirm('纭畾瀵煎嚭鍚�?')
+                    .then(() => {
+                        const loading = ElementPlus.ElLoading.service({
+                            lock: true,
+                            text: 'Loading',
+                            background: 'rgba(0, 0, 0, 0.7)',
+                        })
+                        $.ajax({
+                            url: "http://127.0.0.1:9090/basicinfo/begindata/export",
+                            data: data,
+                            contentType: 'application/json;charset=UTF-8',
+                            method: 'GET',
+                            xhrFields: {
+                                responseType: 'blob' // 閲嶈锛氭寚瀹氬搷搴旂被鍨�
+                            },
+                            success: function(data, status, xhr) {
+                                // 鑾峰彇鏂囦欢鍚�
+                                let fileName = '濮斿鏈熷垵琛�.xls';
+                                const contentDisposition = xhr.getResponseHeader('Content-Disposition');
+                                if (contentDisposition) {
+                                    const fileNameMatch = contentDisposition.match(/filename="?(.+)"?/);
+                                    if (fileNameMatch && fileNameMatch[1]) {
+                                        fileName = fileNameMatch[1];
+                                    }
+                                }
+
+                                // 鍒涘缓 Blob 瀵硅薄骞朵笅杞�
+                                const blob = new Blob([data], { type: 'application/vnd.ms-excel' });
+                                const url = window.URL.createObjectURL(blob);
+                                const link = document.createElement('a');
+                                link.href = url;
+                                link.download = fileName;
+                                document.body.appendChild(link);
+                                link.click();
+                                document.body.removeChild(link);
+                                window.URL.revokeObjectURL(url);
+
+                                ElementPlus.ElMessage({
+                                    message: "瀵煎嚭鎴愬姛",
+                                    type: 'success'
+                                });
+                            },
+                            error: function(xhr, status, error) {
+                                console.error('瀵煎嚭澶辫触:', error);
+                                ElementPlus.ElMessage({
+                                    message: "瀵煎嚭澶辫触",
+                                    type: 'error'
+                                });
+                            },
+                            complete: function (xhr, status){
+                                loading.close()
+                            }
+                        });
+                    })
+                    .catch(() => {
+                        // catch error
+                    })
+
+
+            }
+
+            function getVendor(){
+                $.ajax({
+                    url: "http://127.0.0.1:9090/basicinfo/vendor/getlistfordropdown",
+                    contentType: 'application/json;charset=UTF-8',
+                    method: 'GET',
+                    success: function(res) {
+                        if (res.code == 200) {
+                            res.data.map(item => {
+                                options.value.push({
+                                    value: item.venId, label: item.venName
+                                })
+                            })
+                        } else {
+                            ElementPlus.ElMessage({
+                                message: res.msg,
+                                type: 'error'
+                            });
+                        }
+                    }
+                });
+            }
+
+            function dblclick(val){
+                formData.value = JSON.parse(JSON.stringify(val)) ;
+                dialogVisible.value = true
+            }
+
+
+
+            function handleSizeChange(val) {
+                pageSize.value = val
+                currentPage.value = 1 // 閲嶇疆鍒扮涓�椤�
+                page()
+            }
+
+            function handleCurrentChange(val) {
+                currentPage.value = val
+                page()
+            }
+            function handleSelectionChange(val) {
+                selectList.value = val
+            }
+
+            onMounted(() => {
+                page()
+            })
+
+            onBeforeMount(() => {
+                getVendor()
+
+            })
+
+            return {
+                tableData,
+                currentPage,
+                pageSizes,
+                pageSize,
+                pageTotal,
+                tableSearchParam,
+                options,
+                dialogVisible,
+                formData,
+                search,
+                page,
+                save,
+                tongbu,
+                export1,
+                dblclick,
+                selectDelete,
+                handleSizeChange,
+                handleCurrentChange,
+                handleSelectionChange
+
+            }
+        }
+    });
+
+    app.use(ElementPlus, {
+        locale: zhCn.default || zhCn
+    });
+    for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
+        app.component(key, component)
+    }
+    app.mount('#app');
+</script>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/erpIcmo/icmo.html b/src/main/webapp/views/erpIcmo/icmo.html
new file mode 100644
index 0000000..0dd0196
--- /dev/null
+++ b/src/main/webapp/views/erpIcmo/icmo.html
@@ -0,0 +1,487 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+    <meta charset="utf-8">
+    <title></title>
+    <meta name="renderer" content="webkit">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
+    <link rel="stylesheet" href="../../static/evn/index.css">
+</head>
+
+<body>
+<div id="app">
+    <el-card>
+        <el-form :inline="true">
+            <el-form-item label="寮�宸ユ棩鏈�">
+                <el-date-picker
+                        v-model="tableSearchParam.fplancommitdate"
+                        type="date"
+                        placeholder="閫夋嫨鏃ユ湡"
+                />
+            </el-form-item>
+            <el-form-item label="鍗曟嵁鍙�">
+                <el-input v-model="tableSearchParam.fbillno" placeholder="璇疯緭鍏ュ崟鎹彿"></el-input>
+            </el-form-item>
+            <el-form-item label="鐢熶骇鍗曞彿">
+                <el-input v-model="tableSearchParam.soCode" placeholder="璇疯緭鍏ョ敓浜у崟鍙�"></el-input>
+            </el-form-item>
+            <el-form-item label="杞﹂棿">
+                <el-select v-model="tableSearchParam.depName" placeholder="閫夋嫨杞﹂棿" style="width: 240px" >
+                    <el-option
+                            v-for="item in options"
+                            :key="item.value"
+                            :label="item.label"
+                            :value="item.value"></el-option>
+                </el-select>
+            </el-form-item>
+            <el-form-item label="">
+                <el-button type="primary" @click="search" circle >
+                    <el-icon><Search /></el-icon>
+                </el-button>
+            </el-form-item>
+        </el-form>
+        <el-form :inline="true">
+            <el-form-item label="">
+                <el-button type="danger" @click="selectDelete">鍒犻櫎</el-button>
+            </el-form-item>
+        </el-form>
+        <el-table :data="tableData" border style="width: 100%" @selection-change="handleSelectionChange" max-height="620" @cell-dblclick="dblclick">
+            <el-table-column type="selection" >
+            </el-table-column>
+            <el-table-column type="index" width="40" >
+            </el-table-column>
+            <el-table-column prop="soCode" label="鐢熶骇鍗曞彿" >
+            </el-table-column>
+            <el-table-column prop="fbillno" label="浠诲姟鍗曞彿" >
+            </el-table-column>
+            <el-table-column prop="invCode" label="鐗╂枡缂栫爜"  :show-overflow-tooltip="true">
+            </el-table-column>
+            <el-table-column prop="invName" label="鐗╂枡鍚嶇О"   :show-overflow-tooltip="true">
+            </el-table-column>
+            <el-table-column prop="invStd" label="鐗╂枡瑙勬牸"  :show-overflow-tooltip="true">
+            </el-table-column>
+            <el-table-column prop="depName" label="杞﹂棿">
+            </el-table-column>
+            <el-table-column prop="fqty" label="鏁伴噺">
+            </el-table-column>
+            <el-table-column prop="fplancommitdate" label="璁″垝寮�宸ユ棩鏈�">
+            </el-table-column>
+            <el-table-column prop="fplanfinishdate" label="璁″垝瀹屽伐鏃ユ湡">
+            </el-table-column>
+            <el-table-column prop="izSyncReceive" label="鏄惁鍚屾" width="120">
+            </el-table-column>
+            <el-table-column prop="izSyncReceiveReturn" label="鏄惁閫�鏂�" width="120">
+            </el-table-column>
+        </el-table>
+        <div style="margin-top: 10px">
+            <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
+                           :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize"
+                           layout="total, sizes, prev, pager, next, jumper" :total="pageTotal">
+            </el-pagination>
+        </div>
+
+        <el-dialog v-model="dialogVisible" fullscreen>
+            <el-form :inline="true" label-width="auto">
+                <el-form-item label="">
+                    <el-button type="primary"  @click="save">淇濆瓨</el-button>
+                </el-form-item>
+            </el-form>
+            <el-form :model="formData" label-width="auto" style="max-width: 600px">
+                <el-form-item label="鍗曟嵁鍙�" >
+                    <el-input v-model="formData.fbillno" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="鍒跺崟鏃ユ湡" >
+                    <el-input v-model="formData.fcheckdate" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="閿�鍞崟鍙�" >
+                    <el-input v-model="formData.soCode" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="鐗╂枡浠g爜" >
+                    <el-input v-model="formData.invCode" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="鐗╂枡鍚嶇О" >
+                    <el-input v-model="formData.invName" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="鐗╂枡瑙勬牸" >
+                    <el-input v-model="formData.invStd" disabled></el-input>
+                </el-form-item>
+                <el-form-item label="鏁伴噺" required>
+                    <el-input v-model="formData.fqty" type="number"></el-input>
+                </el-form-item>
+                <el-form-item label="寮�宸ユ棩鏈�" required>
+                    <el-date-picker
+                            v-model="formData.fplancommitdate"
+                            type="date"
+                            placeholder="閫夋嫨寮�宸ユ棩鏈�"
+                    />
+                </el-form-item>
+                <el-form-item label="瀹屽伐鏃ユ湡" required>
+                    <el-date-picker
+                            v-model="formData.fplanfinishdate"
+                            type="date"
+                            placeholder="閫夋嫨瀹屽伐鏃ユ湡"
+                    />
+                </el-form-item>
+                <el-form-item label="杞﹂棿" required>
+                    <el-select v-model="formData.fworkshop" placeholder="閫夋嫨杞﹂棿" style="width: 240px" >
+                        <el-option
+                                v-for="item in depOptions"
+                                :key="item.value"
+                                :label="item.label"
+                                :value="item.value"></el-option>
+                    </el-select>
+                </el-form-item>
+            </el-form>
+            <template #footer>
+                <div class="dialog-footer">
+                    <el-button @click="dialogVisible = false">鍏抽棴</el-button>
+                </div>
+            </template>
+        </el-dialog>
+
+    </el-card>
+</div>
+
+<script type="text/javascript" src="../../static/js/jquery/jquery-3.3.1.min.js"></script>
+<script type="text/javascript" src="../../static/js/common.js" charset="utf-8"></script>
+<script src="../../static/evn/vue.global.js"></script>
+<script src="../../static/evn/element-plus.js"></script>
+<script src="../../static/evn/icons-vue.js"></script>
+<script type="module">
+    // 瀵煎叆涓枃璇█鍖�
+    import zhCn from '../../static/js/erp/zh-cn.js';
+
+    const { createApp, ref, onMounted,onBeforeMount } = Vue;
+
+
+    const app = createApp({
+        setup() {
+            const currentPage = ref(1)
+            const pageSizes = ref([100,500,1000, 1500])
+            const pageSize = ref(100)
+            const pageTotal = ref(0)
+            const tableSearchParam = ref({
+                fplancommitdate: new Date(),
+                fbillno: null,
+                soCode:null,
+                depName:null
+            })
+            console.log(tableSearchParam.value.fplancommitdate)
+            const tableData = ref([])
+
+            const selectList = ref([])
+
+            const options = ref([
+                {
+                    value: '鍗楀尯杞﹂棿',
+                    label: '鍗楀尯杞﹂棿'
+                },
+                {
+                    value: '鍖楀尯杞﹂棿',
+                    label: '鍖楀尯杞﹂棿'
+                }
+            ])
+
+            const depOptions = ref([
+            ])
+
+            const dialogVisible = ref(false)
+            const formData = ref({})
+
+            function search(){
+                currentPage.value = 1
+                page()
+            }
+
+            function page(){
+                let data = JSON.parse(JSON.stringify(tableSearchParam.value))
+                data.curr = currentPage.value
+                data.limit = pageSize.value
+                const loading = ElementPlus.ElLoading.service({
+                    lock: true,
+                    text: 'Loading',
+                    background: 'rgba(0, 0, 0, 0.7)',
+                })
+                $.ajax({
+                    url: "http://127.0.0.1:9090/mo/icmo/getList",
+                    headers: {
+                        'token': localStorage.getItem('token')
+                    },
+                    data: data,
+                    dataType: 'json',
+                    contentType: 'application/json;charset=UTF-8',
+                    method: 'GET',
+                    success: function(res) {
+                        if (res.code == 200) {
+                            tableData.value = res.data.records
+                            pageTotal.value = res.data.total
+                        } else if (res.code === 403) {
+                            top.location.href = baseUrl + "/";
+                        } else {
+                            ElementPlus.ElMessage({
+                                message: res.msg,
+                                type: 'error'
+                            });
+                        }
+                    },
+                    complete: function() {
+                        loading.close()
+                    }
+                });
+            }
+
+            function selectDelete(){
+                if (selectList.value.length === 0){
+                    ElementPlus.ElMessage({
+                        message: "璇峰厛閫夋嫨",
+                        type: 'error'
+                    });
+                    return ;
+                }
+                ElementPlus.ElMessageBox.confirm('纭畾鍒犻櫎鍚�?')
+                    .then(() => {
+                        const loading = ElementPlus.ElLoading.service({
+                            lock: true,
+                            text: 'Loading',
+                            background: 'rgba(0, 0, 0, 0.7)',
+                        })
+                        $.ajax({
+                            url:"http://127.0.0.1:9090/mo/icmo/softDelete",
+                            data: JSON.stringify(selectList.value),
+                            dataType: 'json',
+                            contentType: 'application/json;charset=UTF-8',
+                            method: 'POST',
+                            success: function(res) {
+                                if (res.code == 200) {
+                                    ElementPlus.ElMessage({
+                                        message: "鍒犻櫎鎴愬姛",
+                                        type: 'success'
+                                    });
+
+                                } else if (res.code === 403) {
+                                    top.location.href = baseUrl + "/";
+                                } else {
+                                    ElementPlus.ElMessage({
+                                        message: res.msg,
+                                        type: 'error'
+                                    });
+                                }
+                            },
+                            complete: function() {
+                                page()
+                                dialogVisible.value = false
+                                loading.close();
+                            }
+                        });
+
+                    })
+            }
+
+            function formatLocalDate(date) {
+                if (!date) return '';
+                var d = new Date(date);
+                var year = d.getFullYear();
+                var month = ('0' + (d.getMonth() + 1)).slice(-2);
+                var day = ('0' + d.getDate()).slice(-2);
+                var hours = ('0' + d.getHours()).slice(-2);
+                var minutes = ('0' + d.getMinutes()).slice(-2);
+                var seconds = ('0' + d.getSeconds()).slice(-2);
+                return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
+            }
+
+            function save(){
+                ElementPlus.ElMessageBox.confirm('纭畾淇濆瓨鍚�?')
+                    .then(() => {
+                        const loading = ElementPlus.ElLoading.service({
+                            lock: true,
+                            text: 'Loading',
+                            background: 'rgba(0, 0, 0, 0.7)',
+                        })
+                        const dataToSend = JSON.parse(JSON.stringify(formData.value));
+                        dataToSend.fplancommitdate = formatLocalDate(dataToSend.fplancommitdate);
+                        dataToSend.fplanfinishdate = formatLocalDate(dataToSend.fplanfinishdate);
+                        $.ajax({
+                            url:"http://127.0.0.1:9090/mo/icmo/saveorupdate",
+                            data: JSON.stringify(dataToSend),
+                            dataType: 'json',
+                            contentType: 'application/json;charset=UTF-8',
+                            method: 'POST',
+                            success: function(res) {
+                                if (res.code == 200) {
+                                    ElementPlus.ElMessage({
+                                        message: "淇濆瓨鎴愬姛",
+                                        type: 'success'
+                                    });
+
+                                } else if (res.code === 403) {
+                                    top.location.href = baseUrl + "/";
+                                } else {
+                                    ElementPlus.ElMessage({
+                                        message: res.msg,
+                                        type: 'error'
+                                    });
+                                }
+                            },
+                            complete: function() {
+                                page()
+                                dialogVisible.value = false
+                                loading.close();
+                            }
+                        });
+
+                    })
+            }
+
+            function export1(){
+                let data = JSON.parse(JSON.stringify(tableSearchParam.value))
+                ElementPlus.ElMessageBox.confirm('纭畾瀵煎嚭鍚�?')
+                    .then(() => {
+                        const loading = ElementPlus.ElLoading.service({
+                            lock: true,
+                            text: 'Loading',
+                            background: 'rgba(0, 0, 0, 0.7)',
+                        })
+                        $.ajax({
+                            url: "http://127.0.0.1:9090/basicinfo/begindata/export",
+                            data: data,
+                            contentType: 'application/json;charset=UTF-8',
+                            method: 'GET',
+                            xhrFields: {
+                                responseType: 'blob' // 閲嶈锛氭寚瀹氬搷搴旂被鍨�
+                            },
+                            success: function(data, status, xhr) {
+                                // 鑾峰彇鏂囦欢鍚�
+                                let fileName = '濮斿鏈熷垵琛�.xls';
+                                const contentDisposition = xhr.getResponseHeader('Content-Disposition');
+                                if (contentDisposition) {
+                                    const fileNameMatch = contentDisposition.match(/filename="?(.+)"?/);
+                                    if (fileNameMatch && fileNameMatch[1]) {
+                                        fileName = fileNameMatch[1];
+                                    }
+                                }
+
+                                // 鍒涘缓 Blob 瀵硅薄骞朵笅杞�
+                                const blob = new Blob([data], { type: 'application/vnd.ms-excel' });
+                                const url = window.URL.createObjectURL(blob);
+                                const link = document.createElement('a');
+                                link.href = url;
+                                link.download = fileName;
+                                document.body.appendChild(link);
+                                link.click();
+                                document.body.removeChild(link);
+                                window.URL.revokeObjectURL(url);
+
+                                ElementPlus.ElMessage({
+                                    message: "瀵煎嚭鎴愬姛",
+                                    type: 'success'
+                                });
+                            },
+                            error: function(xhr, status, error) {
+                                console.error('瀵煎嚭澶辫触:', error);
+                                ElementPlus.ElMessage({
+                                    message: "瀵煎嚭澶辫触",
+                                    type: 'error'
+                                });
+                            },
+                            complete: function (xhr, status){
+                                loading.close()
+                            }
+                        });
+                    })
+                    .catch(() => {
+                        // catch error
+                    })
+
+
+            }
+
+            function dblclick(val){
+                formData.value = JSON.parse(JSON.stringify(val));
+                dialogVisible.value = true
+            }
+
+
+
+            function handleSizeChange(val) {
+                pageSize.value = val
+                currentPage.value = 1 // 閲嶇疆鍒扮涓�椤�
+                page()
+            }
+
+            function handleCurrentChange(val) {
+                currentPage.value = val
+                page()
+            }
+            function handleSelectionChange(val) {
+                selectList.value = val
+            }
+
+            function getDepOptions(){
+                $.ajax({
+                    url: "http://127.0.0.1:9090/basicinfo/departmentl/getlistfordropdown",
+                    contentType: 'application/json;charset=UTF-8',
+                    method: 'GET',
+                    success: function(res) {
+                        if (res.code == 200) {
+                            res.data.map(item => {
+                                depOptions.value.push({
+                                    value: item.depId, label: item.depName
+                                })
+                            })
+                        } else {
+                            ElementPlus.ElMessage({
+                                message: res.msg,
+                                type: 'error'
+                            });
+                        }
+                    }
+                });
+            }
+
+            onMounted(() => {
+                page()
+            })
+            onBeforeMount(() => {
+                getDepOptions()
+
+            })
+
+            return {
+                tableData,
+                currentPage,
+                pageSizes,
+                pageSize,
+                pageTotal,
+                tableSearchParam,
+                options,
+                depOptions,
+                dialogVisible,
+                formData,
+                search,
+                page,
+                save,
+                export1,
+                dblclick,
+                selectDelete,
+                handleSizeChange,
+                handleCurrentChange,
+                handleSelectionChange
+
+            }
+        }
+    });
+
+    app.use(ElementPlus, {
+        locale: zhCn.default || zhCn
+    });
+    for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
+        app.component(key, component)
+    }
+    app.mount('#app');
+</script>
+
+</body>
+
+</html>
\ No newline at end of file
diff --git a/src/main/webapp/views/erpWwreport/wwreport.html b/src/main/webapp/views/erpWwreport/wwreport.html
index 8d08d4c..980f5d1 100644
--- a/src/main/webapp/views/erpWwreport/wwreport.html
+++ b/src/main/webapp/views/erpWwreport/wwreport.html
@@ -247,7 +247,7 @@
             }
 
             function export1(){
-                ElementPlus.ElMessageBox.confirm('纭畾鎵撳嵃鍚�?')
+                ElementPlus.ElMessageBox.confirm('纭畾瀵煎嚭鍚�?')
                     .then(() => {
                         const loading = ElementPlus.ElLoading.service({
                             lock: true,
@@ -320,7 +320,7 @@
                     return ;
                 }
                 let data = JSON.parse(JSON.stringify(tableSearchParam.value))
-                ElementPlus.ElMessageBox.confirm('纭畾鎵撳嵃鍚�?')
+                ElementPlus.ElMessageBox.confirm('纭畾瀵煎嚭鍚�?')
                     .then(() => {
                         const loading = ElementPlus.ElLoading.service({
                             lock: true,

--
Gitblit v1.9.1