diff --git a/src/components/XyDialog/index.vue b/src/components/XyDialog/index.vue new file mode 100644 index 0000000..640ff16 --- /dev/null +++ b/src/components/XyDialog/index.vue @@ -0,0 +1,145 @@ + + + diff --git a/src/components/XyTable/index.vue b/src/components/XyTable/index.vue new file mode 100644 index 0000000..0bb4bcf --- /dev/null +++ b/src/components/XyTable/index.vue @@ -0,0 +1,246 @@ + + + + diff --git a/src/main.js b/src/main.js index 0b6994b..008b0b6 100644 --- a/src/main.js +++ b/src/main.js @@ -1,43 +1,50 @@ -import Vue from 'vue' - -import 'normalize.css/normalize.css' // A modern alternative to CSS resets - -import ElementUI from 'element-ui' -import '@/styles/element-variables.scss' -import locale from 'element-ui/lib/locale/lang/en' // lang i18n -import '@/styles/index.scss' // global css -import '@/styles/iconfont.css' -import App from './App' -import store from './store' -import router from './router' - - -import '@/icons' // icon -import '@/permission' // permission control -import ViewUI from 'view-design'; -import './styles/viewui-mine.less'; -Vue.use(ViewUI); -/** - * If you don't want to use mock-server - * you want to use MockJs for mock api - * you can execute: mockXHR() - * - * Currently MockJs will be used in the production environment, - * please remove it before going online ! ! ! - */ -//if (process.env.NODE_ENV === 'production') { -//const { mockXHR } = require('../mock') -//mockXHR() -//} -// set ElementUI lang to EN -//Vue.use(ElementUI, { locale }) -// 如果想要中文版 element-ui,按如下方式声明 -Vue.use(ElementUI) - -Vue.config.productionTip = false -new Vue({ - el: '#app', - router, - store, - render: h => h(App) -}) +import Vue from 'vue' + +import 'normalize.css/normalize.css' // A modern alternative to CSS resets + +import ElementUI from 'element-ui' +import '@/styles/element-variables.scss' +import locale from 'element-ui/lib/locale/lang/en' // lang i18n +import '@/styles/index.scss' // global css +import '@/styles/iconfont.css' +import App from './App' +import store from './store' +import router from './router' + + +import '@/icons' // icon +import '@/permission' // permission control +import ViewUI from 'view-design'; +import './styles/viewui-mine.less'; +Vue.use(ViewUI); +/** + * If you don't want to use mock-server + * you want to use MockJs for mock api + * you can execute: mockXHR() + * + * Currently MockJs will be used in the production environment, + * please remove it before going online ! ! ! + */ +//if (process.env.NODE_ENV === 'production') { +//const { mockXHR } = require('../mock') +//mockXHR() +//} +// set ElementUI lang to EN +//Vue.use(ElementUI, { locale }) +// 如果想要中文版 element-ui,按如下方式声明 +Vue.use(ElementUI) + +import lxHeader from "@/components/LxHeader" +Vue.component('lx-header',lxHeader) +import xyTable from "@/components/XyTable" +Vue.component('xy-table',xyTable) +import xyDialog from "@/components/XyDialog" +Vue.component('xy-dialog',xyDialog) + +Vue.config.productionTip = false +new Vue({ + el: '#app', + router, + store, + render: h => h(App) +}) diff --git a/src/styles/index.scss b/src/styles/index.scss index a3ac7bf..c376d83 100644 --- a/src/styles/index.scss +++ b/src/styles/index.scss @@ -68,108 +68,118 @@ div:focus { - - /*表头错行 .el-table th.gutter{ - display: table-cell!important; -} */ -.pagination { - text-align: right; - /* margin-top: 8px; */ - padding: 2px 28px; - border: 1px solid #eee; - border-top: 0px; -} - -.v-table .el-table__header th { - padding: 0px !important; - background-color: #f8f8f9 !important; - font-size: 13px; - height: 42px; - color: #616161; -} - -.v-table .el-table__header th.is-sortable { - padding: 3px !important; -} - -.table-tree.text-inline .el-table__body .cell { - word-break: inherit !important; - white-space: nowrap !important; -} - -.v-table .el-table__body td { - padding: 9px 0 !important; -} - -.v-table .el-table__footer td { - padding: 7px 0 !important; -} - -/* 2021.01.30修复火狐checkbox错位问题 */ -.table-tree .el-table-column--selection .cell { - display: inline; -} - -.table-tree.text-inline .el-table th>.cell { - white-space: nowrap !important; -} - -.table-tree .el-table__body-wrapper::-webkit-scrollbar { - width: 10px; - height: 10px; -} - -.table-tree .el-table__body-wrapper::-webkit-scrollbar-thumb { - border-radius: 5px; - background: #ddd; -} - -.table-tree .table-img { - height: 40px; - border-radius: 5px; - margin-right: 10px; - width: 40px; - object-fit: cover; -} - -.table-tree .table-img:hover { - cursor: pointer; -} - -.v-table .ivu-tag-default { - border: none !important; - background: none !important; -} - -/* .v-table >>> .el-table__fixed-body-wrapper { -top: 41px !important; -} */ -.v-table .el-table__fixed:before { - border-color: none !important; -} - -/* 2021.06.19判断谷歌内核浏览重新计算table高度 */ -.chrome .el-table__fixed { - height: calc(100% - 11px) !important; - background: white; - /* box-shadow: 0px -11px 10px rgb(0 0 0 / 12%) !important; */ -} - -.chrome .el-table__body-wrapper::-webkit-scrollbar { - width: 11px; - height: 11px; -} - -.chrome .el-table__body-wrapper::-webkit-scrollbar-thumb { - border-radius: 5px; - background: #ddd; -} - -.chrome .el-table__fixed:before { - background-color: unset; -} - -.chrome .el-table__fixed-footer-wrapper { - bottom: -11.5px; + + /*表头错行 .el-table th.gutter{ + display: table-cell!important; +} */ +.pagination { + text-align: right; + /* margin-top: 8px; */ + padding: 2px 28px; + border: 1px solid #eee; + border-top: 0px; +} + +.v-table .el-table__header th { + padding: 0px !important; + background-color: #f8f8f9 !important; + font-size: 13px; + height: 42px; + color: #616161; +} + +.v-table .el-table__header th.is-sortable { + padding: 3px !important; +} + +.table-tree.text-inline .el-table__body .cell { + word-break: inherit !important; + white-space: nowrap !important; +} + +.v-table .el-table__body td { + padding: 9px 0 !important; +} + +.v-table .el-table__footer td { + padding: 7px 0 !important; +} + +/* 2021.01.30修复火狐checkbox错位问题 */ +.table-tree .el-table-column--selection .cell { + display: inline; +} + +.table-tree.text-inline .el-table th>.cell { + white-space: nowrap !important; +} + +.table-tree .el-table__body-wrapper::-webkit-scrollbar { + width: 10px; + height: 10px; +} + +.table-tree .el-table__body-wrapper::-webkit-scrollbar-thumb { + border-radius: 5px; + background: #ddd; +} + +.table-tree .table-img { + height: 40px; + border-radius: 5px; + margin-right: 10px; + width: 40px; + object-fit: cover; +} + +.table-tree .table-img:hover { + cursor: pointer; +} + +.v-table .ivu-tag-default { + border: none !important; + background: none !important; +} + +/* .v-table >>> .el-table__fixed-body-wrapper { +top: 41px !important; +} */ +.v-table .el-table__fixed:before { + border-color: none !important; +} + +/* 2021.06.19判断谷歌内核浏览重新计算table高度 */ +.chrome .el-table__fixed { + height: calc(100% - 11px) !important; + background: white; + /* box-shadow: 0px -11px 10px rgb(0 0 0 / 12%) !important; */ +} + +.chrome .el-table__body-wrapper::-webkit-scrollbar { + width: 11px; + height: 11px; +} + +.chrome .el-table__body-wrapper::-webkit-scrollbar-thumb { + border-radius: 5px; + background: #ddd; +} + +.chrome .el-table__fixed:before { + background-color: unset; +} + +.chrome .el-table__fixed-footer-wrapper { + bottom: -11.5px; +} + +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-thumb { + border-radius: 5px; + background: #ddd; } diff --git a/src/views/budget/budgetList.vue b/src/views/budget/budgetList.vue new file mode 100644 index 0000000..eaf7f17 --- /dev/null +++ b/src/views/budget/budgetList.vue @@ -0,0 +1,185 @@ + + + + + diff --git a/src/views/capital/projectCapitalManage.vue b/src/views/capital/projectCapitalManage.vue new file mode 100644 index 0000000..bf5360b --- /dev/null +++ b/src/views/capital/projectCapitalManage.vue @@ -0,0 +1,19 @@ + + + + + diff --git a/src/views/contract/contractList.vue b/src/views/contract/contractList.vue new file mode 100644 index 0000000..ebc3931 --- /dev/null +++ b/src/views/contract/contractList.vue @@ -0,0 +1,404 @@ + + + + + diff --git a/vue.config.js b/vue.config.js index 036f7bf..9b24ffb 100644 --- a/vue.config.js +++ b/vue.config.js @@ -1,149 +1,149 @@ -'use strict' -const path = require('path') -const defaultSettings = require('./src/settings.js') - -function resolve(dir) { - return path.join(__dirname, dir) -} - -const name = defaultSettings.title || '合同业务管理系统' // page title - -// If your port is set to 80, -// use administrator privileges to execute the command line. -// For example, Mac: sudo npm run -// You can change the port by the following methods: -// port = 9528 npm run dev OR npm run dev --port = 9528 -const port = process.env.port || process.env.npm_config_port || 9530 // dev port - -// All configuration item explanations can be find in https://cli.vuejs.org/config/ -module.exports = { - /** - * You will need to set publicPath if you plan to deploy your site under a sub path, - * for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/, - * then publicPath should be set to "/bar/". - * In most cases please use '/' !!! - * Detail: https://cli.vuejs.org/config/#publicpath - */ - publicPath: '/admin/', - outputDir: '/Users/liuxiangyu/Work/szhedao/app/contract-manage/contract-manage-service/public/admin', - assetsDir: 'static', - lintOnSave: process.env.NODE_ENV === 'development', - productionSourceMap: false, - css: { - loaderOptions: { // 向 CSS 相关的 loader 传递选项 - less: { - javascriptEnabled: true - } - } - }, - devServer: { - port: port, - open: true, - overlay: { - warnings: false, - errors: true - }, - //before: require('./mock/mock-server.js') - proxy: { - [process.env.VUE_APP_BASE_API]: { - //target: 'http://contract.115.langye.net/', - target: 'http://192.168.60.99:9002/', - changeOrigin: true, //配置跨域 - pathRewrite: { - ['^' + process.env.VUE_APP_BASE_API]: '' - } - } - } - }, - configureWebpack: { - // provide the app's title in webpack's name field, so that - // it can be accessed in index.html to inject the correct title. - name: name, - resolve: { - alias: { - '@': resolve('src') - } - } - }, - chainWebpack(config) { - // it can improve the speed of the first screen, it is recommended to turn on preload - config.plugin('preload').tap(() => [{ - rel: 'preload', - // to ignore runtime.js - // https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/cli-service/lib/config/app.js#L171 - fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/], - include: 'initial' - }]) - - // when there are many pages, it will cause too many meaningless requests - config.plugins.delete('prefetch') - - // set svg-sprite-loader - config.module - .rule('svg') - .exclude.add(resolve('src/icons')) - .end() - config.module - .rule('icons') - .test(/\.svg$/) - .include.add(resolve('src/icons')) - .end() - .use('svg-sprite-loader') - .loader('svg-sprite-loader') - .options({ - symbolId: 'icon-[name]' - }) - .end() - - // set preserveWhitespace - config.module - .rule('vue') - .use('vue-loader') - .loader('vue-loader') - .tap(options => { - options.compilerOptions.preserveWhitespace = true - return options - }) - .end() - - config - .when(process.env.NODE_ENV !== 'development', - config => { - config - .plugin('ScriptExtHtmlWebpackPlugin') - .after('html') - .use('script-ext-html-webpack-plugin', [{ - // `runtime` must same as runtimeChunk name. default is `runtime` - inline: /runtime\..*\.js$/ - }]) - .end() - config - .optimization.splitChunks({ - chunks: 'all', - cacheGroups: { - libs: { - name: 'chunk-libs', - test: /[\\/]node_modules[\\/]/, - priority: 10, - chunks: 'initial' // only package third parties that are initially dependent - }, - elementUI: { - name: 'chunk-elementUI', // split elementUI into a single package - priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app - test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm - }, - commons: { - name: 'chunk-commons', - test: resolve('src/components'), // can customize your rules - minChunks: 3, // minimum common number - priority: 5, - reuseExistingChunk: true - } - } - }) - // https:// webpack.js.org/configuration/optimization/#optimizationruntimechunk - config.optimization.runtimeChunk('single') - } - ) - } +'use strict' +const path = require('path') +const defaultSettings = require('./src/settings.js') + +function resolve(dir) { + return path.join(__dirname, dir) +} + +const name = defaultSettings.title || '合同业务管理系统' // page title + +// If your port is set to 80, +// use administrator privileges to execute the command line. +// For example, Mac: sudo npm run +// You can change the port by the following methods: +// port = 9528 npm run dev OR npm run dev --port = 9528 +const port = process.env.port || process.env.npm_config_port || 9530 // dev port + +// All configuration item explanations can be find in https://cli.vuejs.org/config/ +module.exports = { + /** + * You will need to set publicPath if you plan to deploy your site under a sub path, + * for example GitHub Pages. If you plan to deploy your site to https://foo.github.io/bar/, + * then publicPath should be set to "/bar/". + * In most cases please use '/' !!! + * Detail: https://cli.vuejs.org/config/#publicpath + */ + publicPath: '/admin/', + outputDir: '/Users/liuxiangyu/Work/szhedao/app/contract-manage/contract-manage-service/public/admin', + assetsDir: 'static', + lintOnSave: process.env.NODE_ENV === 'development', + productionSourceMap: false, + css: { + loaderOptions: { // 向 CSS 相关的 loader 传递选项 + less: { + javascriptEnabled: true + } + } + }, + devServer: { + port: port, + open: true, + overlay: { + warnings: false, + errors: true + }, + //before: require('./mock/mock-server.js') + proxy: { + [process.env.VUE_APP_BASE_API]: { + target: 'http://hdcontract.ali251.langye.net', + //target: 'http://192.168.60.99:9002/', + changeOrigin: true, //配置跨域 + pathRewrite: { + ['^' + process.env.VUE_APP_BASE_API]: '' + } + } + } + }, + configureWebpack: { + // provide the app's title in webpack's name field, so that + // it can be accessed in index.html to inject the correct title. + name: name, + resolve: { + alias: { + '@': resolve('src') + } + } + }, + chainWebpack(config) { + // it can improve the speed of the first screen, it is recommended to turn on preload + config.plugin('preload').tap(() => [{ + rel: 'preload', + // to ignore runtime.js + // https://github.com/vuejs/vue-cli/blob/dev/packages/@vue/cli-service/lib/config/app.js#L171 + fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/], + include: 'initial' + }]) + + // when there are many pages, it will cause too many meaningless requests + config.plugins.delete('prefetch') + + // set svg-sprite-loader + config.module + .rule('svg') + .exclude.add(resolve('src/icons')) + .end() + config.module + .rule('icons') + .test(/\.svg$/) + .include.add(resolve('src/icons')) + .end() + .use('svg-sprite-loader') + .loader('svg-sprite-loader') + .options({ + symbolId: 'icon-[name]' + }) + .end() + + // set preserveWhitespace + config.module + .rule('vue') + .use('vue-loader') + .loader('vue-loader') + .tap(options => { + options.compilerOptions.preserveWhitespace = true + return options + }) + .end() + + config + .when(process.env.NODE_ENV !== 'development', + config => { + config + .plugin('ScriptExtHtmlWebpackPlugin') + .after('html') + .use('script-ext-html-webpack-plugin', [{ + // `runtime` must same as runtimeChunk name. default is `runtime` + inline: /runtime\..*\.js$/ + }]) + .end() + config + .optimization.splitChunks({ + chunks: 'all', + cacheGroups: { + libs: { + name: 'chunk-libs', + test: /[\\/]node_modules[\\/]/, + priority: 10, + chunks: 'initial' // only package third parties that are initially dependent + }, + elementUI: { + name: 'chunk-elementUI', // split elementUI into a single package + priority: 20, // the weight needs to be larger than libs and app or it will be packaged into libs or app + test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm + }, + commons: { + name: 'chunk-commons', + test: resolve('src/components'), // can customize your rules + minChunks: 3, // minimum common number + priority: 5, + reuseExistingChunk: true + } + } + }) + // https:// webpack.js.org/configuration/optimization/#optimizationruntimechunk + config.optimization.runtimeChunk('single') + } + ) + } }