- 根因:页面(_MainLayout 等)加载的是 bundle.js 等由 bundleconfig.json 打包的生成产物,
但 csproj 未接入 BundlerMinifier,dotnet build 不会重生它们,Jenkins 只是把 git 里
陈旧的 bundle.js 原样发布 -> 改了 fastVue.base.js 后回车不生效(部署的 bundle 仍是无
enter 的旧版)。且源文件带 UTF-8 BOM,拼接后每个 BOM 落入文件中间成为 ZWNBSP,提交
diff 充满不可见字符(历史上曾多次在产物上手工清 BOM 打补丁)。
- 修复:
1. YLErpWeb.csproj 新增 BuildBundlerMinifier(3.2.449);其 BundleMinify 目标在
BeforeCompile 自动按 bundleconfig.json 重建全部 bundle,Jenkins 构建即自动产出正确版本,
不再需要手工重建并提交 bundle.js。
2. .gitignore 忽略 8 个生成产物(jquery.js/bundle.js/vue.js/bundle.css/bundleV2.css/
bundleV2.js/bundle.min.css/bundleV2.min.css) 并 git rm --cached 取消跟踪;这些产物
永不再入版本库、永不陈旧。
3. 剥离 15 个喂给 bundle 的源文件(及 css)开头的 UTF-8 BOM,使重建产物不再含 ZWNBSP。
- 验证:本地 dotnet build -t:BundleMinify 重建后 8 个 bundle 全部 BOM=0,bundle.js 含完整
enter 链路(_enterFired/isEnter/$emit('enter'));删除 bundle.min.css 后构建可自动重建。
80 lines
6.3 KiB
CSS
80 lines
6.3 KiB
CSS
/**************************************************
|
|
改写第三方组件样式类
|
|
****************************************************/
|
|
|
|
/***chosen***/
|
|
.chosen-container { width: 120px; }
|
|
.chosen-container-single .chosen-single { background: #fff; box-shadow: none; text-align: center; text-align-last: center; }
|
|
.chosen-container-multi .chosen-choices { border-radius: 0.25rem; }
|
|
.chosen-choices li { width: 106px; }
|
|
/*.chosen-choices li input { width: 120px !important;}*/
|
|
.chosen-container-multi .chosen-choices li.search-choice { background: #f3f3f3; line-height: 1.2; }
|
|
.chosen-drop .search-spin { display: none; }
|
|
.chosen-drop.searching .search-spin { display: block; }
|
|
.chosen-drop.searching .chosen-results { display: none; }
|
|
/***jqgrid***/
|
|
.ui-jqgrid .ui-jqgrid-bdiv { padding-bottom: 1px; }
|
|
.jqgfirstrow { height: 1px !important; }
|
|
.jqgfirstrow td { border: none !important; }
|
|
.ui-jqgrid .ui-jqgrid-labels th { text-align: center !important; }
|
|
.ui-multiselect ul.selected li { width: 100% !important; }
|
|
.ui-jqgrid td input, .ui-jqgrid td select .ui-jqgrid td textarea { max-width: 100%; max-height: 20px; }
|
|
|
|
/**floatingscroll*/
|
|
.fl-scrolls { bottom: 0; height: 35px; overflow: auto; position: fixed }
|
|
.fl-scrolls div { height: 1px; overflow: hidden; pointer-events: none }
|
|
.fl-scrolls div:before { content: "\A0" }
|
|
.fl-scrolls, .fl-scrolls div { font-size: 1px; line-height: 0; margin: 0; padding: 0 }
|
|
.fl-scrolls-hidden { bottom: 9999px }
|
|
.fl-scrolls-hidden div:before { content: "\A0\A0" }
|
|
.fl-scrolls-viewport { position: relative }
|
|
.fl-scrolls-body { overflow: auto }
|
|
.fl-scrolls-viewport .fl-scrolls { left: 0; position: absolute }
|
|
.fl-scrolls-hoverable .fl-scrolls { opacity: 0; transition: opacity .5s ease .3s }
|
|
.fl-scrolls-hoverable:hover .fl-scrolls { opacity: 1 }
|
|
|
|
/**autocomplete**/
|
|
.autocomplete-suggestions { border: 1px solid #999; background: #FFF; overflow: auto; }
|
|
.autocomplete-suggestion { padding: 2px 5px; white-space: nowrap; overflow: hidden; text-align: center; cursor: pointer; }
|
|
.autocomplete-selected { background: #f8f9fa; }
|
|
.autocomplete-suggestions strong { font-weight: normal; color: #3399FF; }
|
|
.autocomplete-group { padding: 2px 5px; }
|
|
.autocomplete-group strong { display: block; border-bottom: 1px solid #000; }
|
|
|
|
/***niceSelect***/
|
|
.nice-select { -webkit-tap-highlight-color: transparent; background-color: #fff; border-radius: 5px; border: solid 1px #e0e7ee; box-sizing: border-box; clear: both; cursor: pointer; display: block; float: left; font-family: inherit; font-size: 14px; font-weight: normal; height: 42px; line-height: 40px; outline: none; padding-left: 18px; padding-right: 30px; position: relative; text-align: left !important; -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; white-space: nowrap; width: auto; }
|
|
.nice-select:hover { border-color: #d0dae5; }
|
|
.nice-select:active, .nice-select.open, .nice-select:focus { border-color: #88bfff; }
|
|
.nice-select:after { border-bottom: 2px solid #90a1b5; border-right: 2px solid #90a1b5; content: ''; display: block; height: 5px; margin-top: -4px; pointer-events: none; position: absolute; right: 12px; top: 50%; -webkit-transform-origin: 66% 66%; -ms-transform-origin: 66% 66%; transform-origin: 66% 66%; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); -webkit-transition: all 0.15s ease-in-out; transition: all 0.15s ease-in-out; width: 5px; }
|
|
.nice-select.open:after { -webkit-transform: rotate(-135deg); -ms-transform: rotate(-135deg); transform: rotate(-135deg); }
|
|
.nice-select.open .list { opacity: 1; pointer-events: auto; -webkit-transform: scale(1) translateY(0); -ms-transform: scale(1) translateY(0); transform: scale(1) translateY(0); }
|
|
.nice-select.disabled { border-color: #e7ecf2; color: #90a1b5; pointer-events: none; }
|
|
.nice-select.disabled:after { border-color: #cdd5de; }
|
|
.nice-select.wide { width: 100%; }
|
|
.nice-select.wide .list { left: 0 !important; right: 0 !important; }
|
|
.nice-select.right { float: right; }
|
|
.nice-select.right .list { left: auto; right: 0; }
|
|
.nice-select.small { font-size: 12px; height: 36px; line-height: 34px; }
|
|
.nice-select.small:after { height: 4px; width: 4px; }
|
|
.nice-select.small .option { line-height: 34px; min-height: 34px; }
|
|
.nice-select .list { background-color: #fff; border-radius: 5px; box-shadow: 0 0 0 1px rgba(68, 88, 112, 0.11); box-sizing: border-box; margin-top: 4px; opacity: 0; overflow: hidden; padding: 0; pointer-events: none; position: absolute; top: 100%; left: 0; -webkit-transform-origin: 50% 0; -ms-transform-origin: 50% 0; transform-origin: 50% 0; -webkit-transform: scale(0.75) translateY(-21px); -ms-transform: scale(0.75) translateY(-21px); transform: scale(0.75) translateY(-21px); -webkit-transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out; transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out; z-index: 9; }
|
|
.nice-select .list:hover .option:not(:hover) { background-color: transparent !important; }
|
|
.nice-select .option { cursor: pointer; font-weight: 400; line-height: 40px; list-style: none; min-height: 40px; outline: none; padding-left: 18px; padding-right: 29px; text-align: left; -webkit-transition: all 0.2s; transition: all 0.2s; }
|
|
.nice-select .option:hover, .nice-select .option.focus, .nice-select .option.selected.focus { background-color: #f6f7f9; }
|
|
.nice-select .option.selected { font-weight: bold; }
|
|
.nice-select .option.disabled { background-color: transparent; color: #90a1b5; cursor: default; }
|
|
.no-csspointerevents .nice-select .list { display: none; }
|
|
.no-csspointerevents .nice-select.open .list { display: block; }
|
|
|
|
/***bootstrap-select***/
|
|
.bootstrap-select > .dropdown-toggle,
|
|
.bootstrap-select > .dropdown-toggle.bs-placeholder,
|
|
.bootstrap-select > .dropdown-toggle.bs-placeholder:hover,
|
|
.bootstrap-select > .dropdown-toggle.bs-placeholder:focus,
|
|
.bootstrap-select > .dropdown-toggle.bs-placeholder:active { background-color: #fff; border: 1px solid #bbbbbb; height: 30px; font-size: 1rem; }
|
|
.bootstrap-select > .dropdown-toggle { box-shadow: none !important; }
|
|
.bootstrap-select .dropdown-menu li a { min-width: 152px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;}
|
|
.bootstrap-select > select.mobile-device:focus + .dropdown-toggle, .bootstrap-select .dropdown-toggle:focus { outline: none !important; }
|
|
|
|
/**flatpickr**/
|